Dispatcher

Posted by & filed under Javascript, Node.js, Work.

In our application architecture we have multiple servers that handle different types of connections, namely: Requests from web clients (www and REST) over HTTPS Socket.io connections from web clients over HTTPS Socket.io connections from devices TCP connections from proxy servers for devices over TLS Above servers are spawned as processes by a manager app, and… Read more »

Another abstraction error

Posted by & filed under Abstraction errors, Javascript, Node.js.

Yesterday and today I’ve spent a couple hours debugging an issue with Prometheus ODM. Problem was, while testing by refreshing a page generated by an ODM model, I noticed that events inside current model are fired on all models created prior. Sample log output was like this: about to emit “fobidden” to model_5 403 forbidden…… Read more »

Adding permissions to models in my ODM #2

Posted by & filed under Javascript, Node.js, Work.

I’ve spent about a day working on adding permissions to the model. Here are intermediary conclusions: We need to pass user session to model’s permission checker method is_allowed() in order to know session user roles and other data (e.g. company ID). We need to check permissions and cache results at the same time we initialize model… Read more »

Adding permissions to models in my ODM #1

Posted by & filed under Javascript, Node.js, Work.

I just started working on adding permissions to models in my WIP Prometheus ODM. The idea is that I, a developer, want to describe granular access rules to resources. I am going to deal with the most common access types: CRUD (Create, Read, Update, Destroy) + Transfer. In a typical system there also most generic role… Read more »

Scaling Socket.io with Node.js cluster: unresolved

Posted by & filed under Node.js, Work.

Earlier this week I’ve spent some time on a problem of scaling Socket.io in a Node.js cluster. Essence of the problem is, when you run multiple Node app threads (workers) on a server, or multiple servers, socket.io clients connections are routed by cluster in a random round-robin manner, and handshaken / authorized io client requests… Read more »

Node.js ORM: work in progress

Posted by & filed under Javascript, Node.js, Work.

This is about a WIP project of making an ORM for Node.js with pluggable adapters, with code name “Prometheus”: https://github.com/shubik/prometheus The idea was to make a simple ORM with a fairly standard API (get, set, save, destroy, etc.) with adapters for different databases which pretty much offer CRUD and a couple extra convenience methods. We… Read more »

3 months and counting…

Posted by & filed under Javascript, Node.js, Work.

As mentioned in my “Hello world” post, I’d like to share my experiences, challenges, solutions and abstraction errors related to my software development work. I can’t add them retroactively, so I will start with my current project: a web app I am building for Teradek, where I’ve been for 3 months so far. Leaving aside… Read more »