Integrates with everything
Centrifugo is a self-hosted service which handles connections over various transports and provides a simple publishing API. Centrifugo nicely integrates with any application — no changes in the existing app architecture required to introduce real-time updates.
Centrifugo is written in Go language with some smart optimizations inside. See the description of the test stand with one million WebSocket connections and 30 million delivered messages per minute with hardware comparable to a single modern server machine.
Centrifugo provides flexible authentication, various types of subscriptions, hot channel history, online presence, the ability to proxy connection events to the backend, and much more. It comes with official SDK libraries for both web and mobile development.
Built-in Redis, KeyDB, Tarantool engines, or Nats broker make it possible to scale connections across different Centrifugo nodes. So Centrifugo helps you to scale to millions of active connections with reasonable hardware requirements.
Used in production
Started a decade ago, Centrifugo (and Centrifuge library for Go it's built on top of) is mature, battle-tested software that has been successfully used in production by many companies around the world: VK, Badoo, ManyChat, OpenWeb, Grafana, and others.
Centrifugo PRO has a set of unique features on top of the OSS version: analytics with ClickHouse, real-time user and channel tracing, operation throttling, faster performance, token extensions, additional APIs (for example, push notification API), and more.
What is real-time messaging?
Real-time messaging is used to create interactive applications where events are delivered to online users with minimal delay.
Chats apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. can all be built on top of a real-time messaging system.
Centrifugo is a user facing PUB/SUB server that handles persistent connections over various real-time transports — WebSocket, HTTP-streaming, SSE (Server-Sent Events), SockJS, WebTransport, GRPC.
Looking for a cool demo?
Here is the real-time telemetry streamed from the Assetto Corsa racing simulator to the Grafana dashboard with a help of our WebSocket technologies.
This demonstrates that you can stream 60Hz data towards client connections and thus provide instant visual feedback on the state of the system.
What users ❤️ in Centrifugo
Stability. It just works without restarts, for few years already
Scalability and integration with Redis
It's simple and powerful
Very simple integration
It's really well written. Super easy to setup, especially for auth
Has a Dart Client <3