Durga
Durga is a lightweight framework for realtime web applications giving you some handy tools for organizing your communication messages.
What is a "realtime web application"?
Normally a web application requests data from a server and receives it as a response directly. The "realtime-web" enables you to publish data to connected clients from the server at any time. The most common way of doing this is through websockets. There are plenty of wrappers and implementations for "easy" usage of websockets. Some libs|tools for websocket communication: SocketIO, ws, uws and primus.
Motivation
There are several solutions for realtime web applications. Some of them are very large and heavy - doing much more than only providing realtime communication. Other do things in-memory which will not scale very well. The idea behind Durga is to give you a simple tool to organize your realtime communication respecting following requirements:
- Independence of message transportation - choose your preferred websocket implementation
- Independence of databases - MongoDB, RethinkDB use whatever fits your needs to store&provide your data.
- Independence of messaging queues - Based on your stack you can choose your preferred queue. Integrating into Durga should be very easy.
- Easy to scale horizontally - Connections to Durga are stateless.