Integrates with everything
Centrifugo is language-agnostic. It's a standalone server with a simple API that integrates well with an application written in any programming language. No need to change an existing application architecture to introduce real-time features. Just add Centrifugo nearby and let it deal with persistent connections.
Centrifugo is built in Go language with some smart optimizations inside. It has good performance – see a description of a test stand with one million WebSocket connections and 30 million delivered messages per minute with hardware comparable to one modern server machine.
Many built-in features can help to build an attractive real-time application in a limited time. Centrifugo provides different types of subscriptions, hot channel history, instant presence, RPC calls. There is also the possibility to proxy WebSocket events to the application backend over HTTP or GRPC and more.
Built-in Redis, KeyDB, Tarantool engines, or Nats broker make it possible to scale connections over different machines. With consistent sharding of Redis, KeyDB, and Tarantool it's possible to handle millions of active connections with reasonable hardware requirements.
Used in production
Started almost 10 years back then Centrifugo (and Centrifuge library for Go it's built on top of) is a mature server successfully used in production by many companies around the world: Mail.ru, Badoo, ManyChat, Grafana, and others.
Even more with Centrifugo PRO
Centrifugo PRO provides even more unique features: real-time connection analytics with ClickHouse, real-time user and channel tracing, token bucket operation throttling, user active status support, faster API, faster proxy performance, and more.
What is Centrifugo?
💠 Real-time messaging can help building interactive applications where data delivered to users almost immediately after being acknowledged by application backend using push technologies.
💠 Centrifugo handles persistent connections from clients over WebSocket, SockJS, GRPC, SSE (EventSource), HTTP-streaming transports and provides API to publish messages to clients in real-time.
💠 Clients subscribe to channels to receive an interesting subset of messages. So Centrifugo acts as a user facing PUB/SUB server.
💠 Chats, live comments, multiplayer games, streaming metrics and other types of interactive applications can be quickly built using Centrifugo and a set of client libraries available for frontend (for both web and mobile experience).
Looking for a cool demo? See how real-time telemetry is streamed from Assetto Corsa racing simulator towards Grafana dashboard with a help of our WebSocket technologies: