All Projects → thenetcircle → Dino

thenetcircle / Dino

Licence: apache-2.0
Distributed notifications using websockets

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Dino

Social Network
Mini social network that I made as my first web app project.
Stars: ✭ 458 (+222.54%)
Mutual labels:  notifications, socket-io
Codenames
Stars: ✭ 159 (+11.97%)
Mutual labels:  flask, socket-io
Socketio Examples
A few examples that demonstrate the features of the Python Socket.IO server
Stars: ✭ 72 (-49.3%)
Mutual labels:  flask, socket-io
Flask Socketio
Socket.IO integration for Flask applications.
Stars: ✭ 4,523 (+3085.21%)
Mutual labels:  flask, socket-io
Bowtie
Create a dashboard with python!
Stars: ✭ 724 (+409.86%)
Mutual labels:  flask, socket-io
Peeplus
python+vue3前后端分离项目
Stars: ✭ 28 (-80.28%)
Mutual labels:  flask, socket-io
Flask Full
starter/boilerplate flask application with celery, mongoengine, signals, shell commands, swagger api docs and sphinx docs integration
Stars: ✭ 117 (-17.61%)
Mutual labels:  flask, socket-io
Vuejs Python
Examples showing how to use vuejs with python web frameworks (rest, websocket, etc)
Stars: ✭ 132 (-7.04%)
Mutual labels:  flask
Actorcloud
Open-source IoT Platform
Stars: ✭ 138 (-2.82%)
Mutual labels:  flask
Mentorship Backend
Mentorship System is an application that matches women in tech to mentor each other, on career development, through 1:1 relations during a certain period of time. This is the backend of this system.
Stars: ✭ 132 (-7.04%)
Mutual labels:  flask
Health
Laravel Health Panel
Stars: ✭ 1,774 (+1149.3%)
Mutual labels:  notifications
Ahrid
AHRID - Analysis Hacker's Real-ID Platform 黑客攻击画像分析系统(停止运营)
Stars: ✭ 133 (-6.34%)
Mutual labels:  flask
Docker Flask Gunicorn Nginx
Bootstrap example of a Flask app served via Gunicorn and Nginx using Docker conteiners
Stars: ✭ 138 (-2.82%)
Mutual labels:  flask
Notifications Rails
A flexible notification library supporting the delivery to external services, rendering in various environments, and user configuration by category.
Stars: ✭ 130 (-8.45%)
Mutual labels:  notifications
Server Monitor App
A PHP application to monitor the health of your servers
Stars: ✭ 141 (-0.7%)
Mutual labels:  notifications
Flask On Docker
Stars: ✭ 131 (-7.75%)
Mutual labels:  flask
Tedivms Flask
Flask starter app with celery, bootstrap, and docker environment
Stars: ✭ 142 (+0%)
Mutual labels:  flask
Origami
🔓 🔑 🔐 Origami: Artificial Intelligence as a Service
Stars: ✭ 140 (-1.41%)
Mutual labels:  flask
Drone Keyboard
Drone Keyboard for Tello
Stars: ✭ 136 (-4.23%)
Mutual labels:  socket-io
Laravel Messenger
Notifying your users doesn't have to be a lot of work.
Stars: ✭ 135 (-4.93%)
Mutual labels:  notifications

Dino

Build Status coverage Code Climate License

Dino is a distributed notification service intended to push events to groups of clients. Example use cases are chat server, real-time notifications for websites, push notifications for mobile apps, multi-player browser games, and more. Dino is un-opinionated and any kind of events can be sent, meaning Dino only acts as the router of events between clients.

Any number of nodes can be started on different machines or same machine on different port. Flask will handle connection routing using either Redis or RabbitMQ as a message queue internally. An nginx reverse proxy needs to sit in-front of all these nodes with sticky sessions (ip_hash). Fail-over can be configured in nginx for high availability.

Documentation is hosed on GitHub Pages.

Dino Architecture

Monitoring

Loads of metrics is by default being collected by Dino and sent to statsd. To enable statsd monitoring, configure the statsd block in dino.yaml to point to your statsd instance:

Dino Grafana

Future features

  • The socket.io flask cluster only acts as the router of events,
  • Flask nodes sends events to kafka cluster,
  • Kafka cluster enriches streams with a timestamp and sequence id,
  • Flask nodes subscribe on certain streams, such as events to be broadcasted (e.g. messages in a chat room),
  • For other streams such as updating acls, managing rooms, user info, another application will subscribe and store maybe in a relational db,
  • An application will subscribe to the e.g. message streams to store data in cassandra.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].