OSS vs PROOSSPRO
Core MessagingA solid real-time foundation available in both editions
PUB/SUB, channels, namespaces
WebSocket, SSE, HTTP-streaming, WebTransport, GRPC transports
WebSocket bidirectional emulation
Stream subscriptions with history, recovery, cache mode
Map subscriptions for state syncSoonSoon
Presence & join/leave events
Delta compression, publication filtering by tags
Proxy events (connect, subscribe, publish, RPC)
Official real-time SDKs for popular languages
Security, auth, permissionsProtect your platform, control access at every level
JWT & proxy authentication
Channel capabilities & CEL expressions
Fine-grained permissions on a per-connection or per-subscription basis. Control who can publish, subscribe, or access history — configured via JWT claims or connect/subscribe proxy. Learn more →
Channel patterns
Define channel configuration using route-like patterns (e.g. /users/:name) similar to URL routing in web frameworks. Build familiar HTTP-style channel models without listing every namespace. Learn more →
Operation rate limiting
Limit the number of subscribe, publish, history, presence, RPC and other operations per connection using a token bucket algorithm. Automatically disconnect clients that generate too many errors. Learn more →
User blocking API
Block users at the Centrifugo level — blocked users are immediately disconnected and cannot reconnect. Supports optional persistence to Redis or database so blocks survive restarts. Learn more →
Token revocation & invalidation
Revoke individual tokens by JTI claim or invalidate all tokens issued before a specific time using IAT claim. Revocation info is kept in-memory with periodic sync, making checks fast. Learn more →
Multiple JWKS providers
Automatically extract and map JWT claims from third-party identity providers into Centrifugo connection metadata. Useful when working with providers that issue non-customizable tokens. Learn more →
Server API JWKS authentication
Protect HTTP and GRPC server APIs with JWKS-based JWT authentication. Use tokens from your identity provider (Keycloak, Auth0, etc.) instead of static API keys. Learn more →
Scalability and performanceLower costs and handle more with fewer resources
Scale with Redis, Redis Cluster and NATS
Per-namespace engines
Use different broker or presence backends per namespace. For example, Redis for most channels but NATS for wildcard subscriptions — within a single Centrifugo setup. Learn more →
Singleflight & shared position sync
Merge identical parallel requests to history, presence, or presence stats into one real network request. Particularly effective during massive reconnect scenarios. Learn more →
Performance optimizations
Batch periodic client events (ping, presence updates) to reduce CPU usage and system calls. Reported over 2x CPU reduction for idle connections in benchmarks. Learn more →
Bandwidth optimizations
Enable delta compression for at-most-once delivery by keeping the latest publication in node memory. Reduces outgoing bandwidth without requiring history or recovery to be enabled. Learn more →
Advanced message write and batching
Configure write_delay to collect messages before sending, trading delivery latency for reduced CPU. Can cut overall cluster CPU usage by half for high message rate scenarios. Learn more →
ObservabilityFull visibility into every connection, channel, and message
Prometheus metrics, admin UI
ClickHouse analytics
Export publications, connections, subscriptions, operations, and push notification events to ClickHouse. Run fast analytical queries with effective data retention policies. Learn more →
Real-time channel & user tracing
Attach to any channel or user ID in real time to see all messages and events as they happen. Available in admin UI or via API. Traces can be saved to files for later analysis. Learn more →
Connection & channel snapshots
Inspect current state of connections and channels across the cluster. See who is connected, what they are subscribed to, and channel-level stats. Learn more →
SSO/OIDC for admin UI
Authenticate admin UI users via any OIDC-compatible identity provider (Okta, KeyCloak, Google, Azure, etc.) with PKCE support. Checks user permissions on every request. Learn more →
Enhanced metrics
Channel namespace resolution and client SDK name breakdown in Prometheus metrics, per-node CPU and RSS stats in admin UI, and more. Learn more →
EngagementReach users even when they are offline
Push notifications (FCM, APNs, HMS)
Send push notifications to Android, iOS, and web via FCM, APNs, and HMS. Supports timezone-aware delivery, localization, and templating. Learn more →
Device token management & topics
Built-in device token storage in PostgreSQL with topic-based subscriptions and Redis-based worker queues. Centrifugo handles the full push notification lifecycle. Learn more →
Additional APIs and eventsExtended server-side APIs and channel events for deeper integration
Channel state events (occupied/vacated)Preview
Webhook notifications when a channel becomes occupied (first subscriber) or vacated (last subscriber leaves). Requires Redis engine with presence enabled on channels. Learn more →
Cache empty events
Proxy notification when a client in cache recovery mode finds no publication in the channel history stream, allowing your backend to populate the cache on demand. Learn more →
User status API
Clients call update_user_status RPC on meaningful actions, storing last active time in Redis. Query status for multiple users at once — useful for showing online indicators in chat apps. Learn more →
Connections API
Retrieve all active user sessions by user ID or expression without requiring presence. Attach JSON metadata to connections for server-side inspection and session management. Learn more →
SupportGet help when you need it
Community support
Prioritized support