In this article, we create a real-time leaderboard using Centrifugo, Redis, React and Python. Here we show the usage of Centrifugo built-in asynchronous consumer from Redis Stream. The post additionally showcases Fossil delta compression and cache recovery mode.|
We are excited to tell the world about Centrifugo v6 – a new major release, which is now live. This release contains fundamental changes in the configuration and adds several useful features and more observability to Centrifugo OSS and Centrifugo PRO.|
A simple yet cool example of document state synchronization on top of Centrifugal stack. The end goal is to effectively and reliably synchronize document state to application users – to avoid race condition between state load and updates coming from the real-time subscription.|
Centrifugo has GRPC subscription streams feature, in this post we show how this feature may simplify a task of delivering data to application UI in real-time. We integrate with Loki, injest log entries and stream logs to the browser based on user-supplied query|
In this post, the engineering team of RabbitX platform shares details about the usage of Centrifugo in their product.|
In this post, we'll demonstrate how to asynchronously stream messages into Centrifugo channels from external data providers using Benthos tool. We also highlight some pitfalls which become more important in asynchronous publishing scenario.|
This tutorial shows how to connect to Centrifugo when using Keycloak SSO flow for user authentication. Here we build a simple demo app using React and Vite.|
In this post we are discussing vaious ways developers can use to subscribe user to a personal channel in Centrifugo|
In this tutorial, we are integrating Laravel framework with Centrifugo real-time messaging server to make a multi-room chat application.|
In this tutorial, we are integrating Django with Centrifugo to make a basic chat application. We are using Centrifugo proxy feature to proxy WebSocket connection events to a Django backend.|
In this tutorial we are integrating Centrifugo with NodeJS. We are using Centrifugo connect proxy feature to authenticate connections over standard Express.js session middleware.|
Centrifugo v3 released with lots of exciting improvements|
Centrifugo is an open source server designed to help building interactive real-time messaging applications. Think chats, live comments, multiplayer games, streaming metrics etc. Centrifugo provides a variety of real-time transports, scales well and integrates with any application.| centrifugal.dev
Websocket is the main transport in Centrifugo. It's a very efficient low-overhead protocol on top of TCP. Websocket works out of the box in all modern browsers and almost all programming languages have Websocket implementations. This makes Websocket an efficient universal real-time transport which can be used to connect to Centrifugo from almost everywhere.| centrifugal.dev
Delta compression feature allows a client to subscribe to a channel in a way so that message payloads contain only the differences between the current message and the previous one sent on the channel.| centrifugal.dev
Centrifugo has several client SDKs to establish a real-time connection with a server. Centrifugo SDKs use WebSocket as the main data transport and send/receive messages encoded according to our bidirectional protocol. That protocol is built on top of the Protobuf schema (both JSON and binary Protobuf formats are supported). It provides asynchronous communication, sending RPC, multiplexing subscriptions to channels, etc. Client SDK wraps the protocol and exposes a set of APIs to developers.| centrifugal.dev
To provide a better server observability Centrifugo supports reporting metrics in Prometheus format and can automatically export metrics to Graphite.| centrifugal.dev
Centrifugo operates on a PUB/SUB model. Upon connecting to a server, clients can subscribe to channels. A channel is one of the core concepts of Centrifugo. Most of the time when integrating Centrifugo, you will work with channels and determine the optimal channel configuration for your application.| centrifugal.dev
Centrifugo comes with a built-in administrative web interface. It enables users to:| centrifugal.dev
Centrifugo excels in delivering real-time in-app messages to online users. Sometimes though you need a way to engage offline users to come back to your app. Or trigger some update in the app while it's running in the background. That's where push notifications may be used. Push notifications delivered over battery-efficient platform-dependent transport.| centrifugal.dev
This feature allows exporting information about channel publications, client connections, channel subscriptions, client operations and push notifications to ClickHouse thus providing an integration with a real-time (with seconds delay) analytics storage. ClickHouse is super fast for analytical queries, simple to operate with and it allows effective data keeping for a window of time. Also, it's relatively simple to create a high performance ClickHouse cluster.| centrifugal.dev
Centrifugo v5 migration from v4 should be smooth for most of the use cases.| centrifugal.dev
Let's discuss some architectural and design topics about Centrifugo.| centrifugal.dev
Centrifugo is an efficient and scalable transport for streaming AI responses. In this article, we will stream GPT-3.5 Turbo responses in real-time using Centrifugo temporary channels and Python. Simple and effective!| centrifugal.dev
While we concentrate our main efforts on Centrifugo v6 development, let's recap the most notable features and improvements introduced during Centrifugo v5 lifecycle.| centrifugal.dev
Centrifugo PRO is the enhanced version of Centrifugo offered by Centrifugal Labs LTD under a commercial license. It's packed with a unique set of features designed to fit requirements of corporate and enterprise environments, decrease costs at scale, and benefit from additional features such as push notifications support, real-time analytics, and so on. We have leveraged our extensive experience to build Centrifugo PRO, ensuring its extra powers are practical and ready for production workload...| centrifugal.dev
In this post, we explore how WebSocket compression can optimize bandwidth costs. We also discuss strategies to minimize the CPU and memory overhead associated with the enabled WebSocket compression from the Go ecosystem perspective.| centrifugal.dev
This post shows the potential profit of enabling delta compression in channels and demonstrates the reduction of data transfer in various scenarios, including different Centrifugo protocol formats and using WebSocket permessage-deflate compression.| centrifugal.dev
We start talking more about recently launched Centrifugo PRO. In this post, we share details about Centrifugo PRO push notification API implementation - how it works and what makes it special and practical.| centrifugal.dev
We are excited to announce a new version of Centrifugo. It's an evolutionary step which makes Centrifugo cleaner and more intuitive to use.| centrifugal.dev
Describing a test stand in Kubernetes where we connect one million websocket connections to a server, using Redis to scale nodes, and providing insights about hardware resources required to achieve 500k messages per second| centrifugal.dev
Centrifugo v4 provides an optimized client protocol, modern WebSocket emulation, improved channel security, redesigned client SDK behavior, experimental HTTP/3 and WebTransport support.| centrifugal.dev
The post describes techniques to write scalable WebSocket servers within Go ecosystem and beyond it| centrifugal.dev
Here we experiment with QUIC and WebTransport in Chrome| centrifugal.dev
In this post we share some details about Centrifugo Redis Engine implementation and its recent performance improvements with the help of Rueidis Go library| centrifugal.dev