A high-performance, cluster-ready push notification server written in pure Go with support for WebSocket, TCP, and offline message storage.
gopush-cluster is a push notification server cluster written in pure Go that enables real-time message delivery to connected clients. It solves the problem of scalable, high-performance push notifications with support for multiple protocols, offline message storage, and cluster failover capabilities.
Backend developers and infrastructure engineers building real-time notification systems, chat applications, or live data dashboards that require scalable push functionality.
Developers choose gopush-cluster for its pure Go performance, built-in clustering capabilities, and comprehensive feature set including authentication, message expiration, and ZooKeeper-based failover support.
Golang push server cluster
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Pure Go implementation optimized for speed and lightweight operation, handling real-time pushes efficiently as highlighted in the README.
Easy addition and removal of comet, web, and message nodes for horizontal scaling, integrated with ZooKeeper for failover support.
Stores messages for disconnected clients with configurable expiration, ensuring no data loss during temporary outages.
Supports WebSocket and TCP protocols, with planned HTTP long-polling, offering flexibility in client connections.
HTTP long-polling is listed as 'todo' in the README, limiting options for clients that rely on this method for real-time communication.
Requires ZooKeeper for failover, adding operational complexity and overhead for teams unfamiliar with distributed coordination services.
As a pure Go project, it may lack seamless integrations or libraries for non-Go backends, potentially increasing development effort.