Systems | Development | Analytics | API | Testing

November 2024

Data integrity in Ably Pub/Sub

When you publish a message to Ably Pub/Sub, you can be confident that the message will be delivered to subscribing clients, wherever they are in the world. Ably is fast: we have a 99th percentile transmit latency of <50ms from any of our 635 global PoPs, that receive at least 1% of our global traffic. But being fast isn’t enough; Ably is also dependable and scalable. Ably doesn’t sacrifice data integrity for speed or scale; it’s fast and safe.

Ably's four pillars: no scale ceiling

This is one of a series of posts that explain Ably’s four pillars of dependability. The four pillars project at Ably is about making concrete, objectively verifiable, statements about the technical characteristics of the service. We aim to ensure that our claims about service performance are expressed clearly in terms of explicit metrics, and we explain in technical terms how those performance levels are met.

Designing chat architecture for reliable message ordering at scale

When was the last time you used a chat service and noticed messages arriving out of order? It’s likely that you can’t think of one. Getting messages to arrive in the right order is more or less job number one of a chat service. Sounds simple. But scale this to millions of users across a global network and it becomes a complex distributed computing problem. Even at smaller scales, message ordering isn’t guaranteed once you go beyond a simple, direct connection between two users.

The true cost of consumption-based pricing: Why MAU models fall short and how to optimize for customers

Consumption-based pricing has become a popular model for SaaS and PaaS businesses, allowing customers to pay only for what they use. Pioneers like Slack and AWS have successfully adopted this approach, offering flexibility and reducing waste. However, not all consumption-based models are created equal. The Monthly Active Users (MAU) model, while appealing in its simplicity, often leads to inefficiencies and unexpected costs.

Scaling Kafka with WebSockets

Kafka is a highly popular realtime data streaming platform, renowned for handling massive volumes of data with minimal latency. Typical use cases include handling user activity tracking, log aggregation and IoT telemetry. Kafka’s architecture, based on distributed partitions, allows it to scale horizontally across multiple brokers. But although Kafka excels at high data throughput, scaling it to manage thousands of client connections can be costly and complex.