56,966 blogs · [ { "id": "01a0875d-a7a2-7054-a78d-2f9d610bc20a", "title": "Tuning Centrifugo PRO for large number of idle WebSocket connections", "url": "https://centrifugal.dev/blog/2026/08/17/tuning-idle-connections", "published_at": "2026-08-17T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d61411e08", "title": "App-owned state with stream subscriptions", "url": "https://centrifugal.dev/blog/2026/07/27/app-owned-state-stream-subscriptions", "published_at": "2026-07-27T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d615ce6e6", "title": "Scaling Redis Pub/Sub to Millions of Channels and Hundreds of Subscriber Nodes", "url": "https://centrifugal.dev/blog/2026/06/29/scaling-redis-pub-sub", "published_at": "2026-06-29T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6184e8a4", "title": "Multi-node Centrifugo on PostgreSQL alone", "url": "https://centrifugal.dev/blog/2026/05/25/pg-controller-multi-node", "published_at": "2026-05-25T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d627bdb47", "title": "Transactional publishing for stream subscriptions with PostgreSQL", "url": "https://centrifugal.dev/blog/2026/05/24/pg-stream-broker-benefits", "published_at": "2026-05-24T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d62d71304", "title": "Map subscriptions (Part 2) — when your PostgreSQL transaction is your real-time publish", "url": "https://centrifugal.dev/blog/2026/05/23/map-subscriptions-part-2", "published_at": "2026-05-23T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d631b69f8", "title": "Map subscriptions (Part 1) — synchronized key-value state and presence", "url": "https://centrifugal.dev/blog/2026/05/22/map-subscriptions", "published_at": "2026-05-22T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d63f82cbc", "title": "Recreating a Two Million Particle World at 30 Hz with Centrifugo", "url": "https://centrifugal.dev/blog/2026/05/21/two-million-particles-on-centrifugo", "published_at": "2026-05-21T18:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d640e5269", "title": "Shared poll subscriptions: O(unique items) polling with low-latency updates", "url": "https://centrifugal.dev/blog/2026/05/21/shared-poll-subscriptions", "published_at": "2026-05-21T10:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d64746ef7", "title": "Scaling AI token streams with Centrifugo", "url": "https://centrifugal.dev/blog/2026/03/01/scaling-ai-token-streams-with-centrifugo", "published_at": "2026-03-01T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d64903db1", "title": "Publication filtering by tags - reducing bandwidth with server-side stream filtering", "url": "https://centrifugal.dev/blog/2025/10/14/server-side-publication-filtering-by-tags", "published_at": "2025-10-14T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d658c40ac", "title": "Streaming AI responses with Centrifugo", "url": "https://centrifugal.dev/blog/2025/06/17/streaming-ai-gpt-responses-with-centrifugo", "published_at": "2025-06-17T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d65d04008", "title": "Building a real-time WebSocket leaderboard with Centrifugo and Redis", "url": "https://centrifugal.dev/blog/2025/04/28/websocket-real-time-leaderboard", "published_at": "2025-04-28T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d65f427d5", "title": "Centrifugo v6 released", "url": "https://centrifugal.dev/blog/2025/01/16/centrifugo-v6-released", "published_at": "2025-01-16T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d66c99547", "title": "Notable Centrifugo v5 milestones in 2024", "url": "https://centrifugal.dev/blog/2024/12/23/centrifugo-v5-milestones", "published_at": "2024-12-23T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d66fe1649", "title": "Performance optimizations of WebSocket compression in Go application", "url": "https://centrifugal.dev/blog/2024/08/19/optimizing-websocket-compression", "published_at": "2024-08-19T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d67e3e0b3", "title": "Proper real-time document state synchronization within Centrifugal ecosystem", "url": "https://centrifugal.dev/blog/2024/06/03/real-time-document-state-sync", "published_at": "2024-06-03T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d685d2797", "title": "Experimenting with real-time data compression by simulating a football match events", "url": "https://centrifugal.dev/blog/2024/05/30/real-time-data-compression-experiments", "published_at": "2024-05-30T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6940a447", "title": "Stream logs from Loki to browser with Centrifugo Websocket-to-GRPC subscriptions", "url": "https://centrifugal.dev/blog/2024/03/18/stream-loki-logs-to-browser-with-websocket-to-grpc-subscriptions", "published_at": "2024-03-18T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d698ef44a", "title": "Discovering Centrifugo PRO: push notifications API", "url": "https://centrifugal.dev/blog/2023/10/29/discovering-centrifugo-pro-push-notifications", "published_at": "2023-10-29T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6a4ab88e", "title": "Using Centrifugo in RabbitX", "url": "https://centrifugal.dev/blog/2023/08/29/using-centrifugo-in-rabbitx", "published_at": "2023-08-29T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6b2a45bd", "title": "Asynchronous message streaming to Centrifugo with Benthos", "url": "https://centrifugal.dev/blog/2023/08/19/asynchronous-message-streaming-to-centrifugo-with-benthos", "published_at": "2023-08-19T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6b8d16b0", "title": "Centrifugo v5 released", "url": "https://centrifugal.dev/blog/2023/06/29/centrifugo-v5-released", "published_at": "2023-06-29T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6baa9e26", "title": "Setting up Keycloak SSO authentication flow and connecting to Centrifugo WebSocket", "url": "https://centrifugal.dev/blog/2023/03/31/keycloak-sso-centrifugo", "published_at": "2023-03-31T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6c2f7b01", "title": "Improving Centrifugo Redis Engine throughput and allocation efficiency with Rueidis Go library", "url": "https://centrifugal.dev/blog/2022/12/20/improving-redis-engine-performance", "published_at": "2022-12-20T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6c6a4436", "title": "101 ways to subscribe user on a personal channel in Centrifugo", "url": "https://centrifugal.dev/blog/2022/07/29/101-way-to-subscribe", "published_at": "2022-07-29T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6cd7c061", "title": "Centrifugo v4 released – a little revolution", "url": "https://centrifugal.dev/blog/2022/07/19/centrifugo-v4-released", "published_at": "2022-07-19T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6d2a7181", "title": "Building a multi-room chat application with Laravel and Centrifugo", "url": "https://centrifugal.dev/blog/2021/12/14/laravel-multi-room-chat-tutorial", "published_at": "2021-12-14T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6d585061", "title": "Centrifugo integration with Django – building a basic chat application", "url": "https://centrifugal.dev/blog/2021/11/04/integrating-with-django-building-chat-application", "published_at": "2021-11-04T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6df54634", "title": "Centrifugo integration with NodeJS tutorial", "url": "https://centrifugal.dev/blog/2021/10/18/integrating-with-nodejs", "published_at": "2021-10-18T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6e9f7d0d", "title": "Centrifugo v3 released", "url": "https://centrifugal.dev/blog/2021/08/31/hello-centrifugo-v3", "published_at": "2021-08-31T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6f4fb104", "title": "Centrifuge – real-time messaging with Go", "url": "https://centrifugal.dev/blog/2021/01/15/centrifuge-intro", "published_at": "2021-01-15T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d6ff3bb9f", "title": "Scaling WebSocket in Go and beyond", "url": "https://centrifugal.dev/blog/2020/11/12/scaling-websocket", "published_at": "2020-11-12T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d709c48e5", "title": "Experimenting with QUIC and WebTransport", "url": "https://centrifugal.dev/blog/2020/10/16/experimenting-with-quic-transport", "published_at": "2020-10-16T00:00:00+00:00" }, { "id": "01a0875d-a7a2-7054-a78d-2f9d712f9067", "title": "Million connections with Centrifugo", "url": "https://centrifugal.dev/blog/2020/02/10/million-connections-with-centrifugo", "published_at": "2020-02-10T00:00:00+00:00" } ] posts Claim your blog
Back to centrifugal.dev
Blog · corpus.blog/blogs/centrifugal.dev/posts

centrifugal.dev

centrifugal.dev

2026

2025

2024

2023

2022

2021

2020