{"repo":"pyankie/pushflow","free":true,"listed":false,"github":"https://github.com/pyankie/pushflow","clone":"git clone https://github.com/pyankie/pushflow.git","description":"Event-driven real-time push notification framework using NestJS, Redis Pub/Sub, and WebSockets.","language":"TypeScript","stars":17,"topics":["distributed-systems","microservices","nestjs","open-source","redis","websocket"],"license":"MIT","category":"databases-storage","readme_excerpt":"PushFlow PushFlow is a standalone, real-time push notification framework built using a microservice architecture. It is designed to demonstrate clear service boundaries, asynchronous communication, and real-time message delivery using WebSockets. --- Overview PushFlow enables an application to send real-time notifications to connected clients through a clean, event-driven workflow. At a high level: - A Gateway Service exposes HTTP APIs for sending notifications - A Dispatcher Service manages the notification lifecycle and persistence - A Delivery Service maintains WebSocket connections and delivers messages in real time The system is intended to be used by a single application , not as a multi-tenant cloud service. --- Architecture Services 1. Gateway Service - Exposes HTTP APIs - POST /notifications - GET /notifications/:id/status - Acts as the entry point for the client application - Delegates all business logic to the Dispatcher - Does not store data or manage WebSocket connections 2. Dispatcher Service - Core business service - Generates notificationId - Persists notification state in MongoDB - Tracks notification lifecycle (e.g. ACCEPTED , DELIVERED , FAILED ) - Publishes delivery events to the Delivery Service 3. Delivery Service - Hosts the WebSocket server - Manages client connections - Receives delivery events from the Dispatcher - Pushes notifications to connected clients in real time --- Communication Flow Sending a Notification 1. Client application sends a reques","default_branch":null,"files":null,"tree":[],"storefront":"/r/pyankie","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/pyankie/pushflow/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}