Ably vs. Stream: A head-to-head comparison for chat use cases
Discover why Ably is the better choice for building scalable, feature-rich chat experiences with superior quality of service guarantees.
What is Ably?
Ably is a realtime experience infrastructure provider. Our realtime APIs and SDKs help you build live chat experiences, without having to worry about managing and scaling messy realtime infrastructure.
Our globally-distributed, multi-region network offers unrivaled guarantees around performance, data integrity, reliability, and scalability:
<65 ms median latency.
Guaranteed message ordering and (exactly-once) delivery, even in unreliable network conditions.
Redundancy at regional and global levels, with a 99.999% uptime SLA.
Dynamic elasticity, with the ability to send billions of messages to millions of channels and chat users.
We offer flexible building blocks like pub/sub messaging, presence, and message interactions, so you can build rich 1:1 and group chat experiences, with diverse features, including online/offline status indicators, reactions, typing indicators, read receipts, and many more.
What is Stream (formerly GetStream)?
Founded in 2015, Stream is a PaaS that provides APIs and SDKs which allow developers to build and embed live chat and activity feeds into their web and mobile applications.
Stream's product for building realtime in-app chat is called Stream Chat. It’s an API-based service that gives developers tools to add realtime, 1-on-1, and group chat functionality to their apps.
Ably vs Stream Chat: feature comparison
The purpose of this comparison is to help you make a more informed decision when it comes to choosing the best chat solution for your project. We’ll cover a set of topics we think are essential to ask of any technology that helps you deliver chat experiences.
Performance, reliability, scalability, and messaging guarantees
Before considering anything else, you need to trust your chat provider can deliver a dependable service at scale. Performance, reliability, scalability, and superior messaging guarantees are critical factors for any solution that enables the building of chat applications. These characteristics directly impact the user experience and can make or break the success of any chat experience.
99.999% uptime SLA for all paid pricing plans.
99.95% uptime SLA for customers with the Business support plan.
99.999% uptime SLA exclusively for enterprise customers.
<65ms round-trip latency (P99)
It’s hard to estimate exactly what kind of latencies you'll deal with when sending/receiving chat messages.
Some users may deal with significantly increased latencies compared to others, as all traffic for a chat app is routed through a single datacenter. For example, if your app is hosted in US East, and you have a chat user from the US, and one from India, the latter will experience increased latency compared to the former.
There is some info about how long it takes to establish a new connection to the Stream Chat service, so you have an idea of what to expect.
Connect latency from Amsterdam to US East (P99):
Connect latency from Amsterdam to Mumbai (P99):
Connect latency from Amsterdam to Singapore (P99):
We are only limited by the amount of capacity that Amazon AWS can provide us, which is practically limitless.
That’s why Ably is able to send billions of messages to millions of concurrently-connected devices, over millions of pub/sub channels.
Note that every component of the Ably service affected by increased load is designed to automatically scale pre-emptively to meet demand.
Claims it can handle 5 million+ concurrent connections in a single channel.
Infrastructure / datacenters
Ably has datacenters in 7 regions:
Our network also consists of 385 edge acceleration points of presence (PoPs) distributed all over the world.
Stream Chat is hosted on AWS in several regions:
Stream chat infrastructure also consists of multiple edge servers (unclear how many). These servers have a single purpose: they help reduce the time it takes to establish a new connection / connect to Stream Chat (however, they are not responsible for processing and storing chat data).
The Ably service comes with a globally-distributed, multi-region mesh architecture, with no single point of congestion, and no single point of failure.
Even though Stream Chat is hosted in several different regions, it’s not a multi-region solution. You are required to pick just one datacenter for your app; all associated data will be stored and processed there. Data is not replicated in other regions, nor are you able to migrate your app to another region.
This single-region design has a negative impact on latency (if your chat users live in different parts of the world), reliability, and availability (single point of congestion and failure).
Guaranteed message ordering
We have not identified any documentation that indicates whether or not Stream Chat guarantees message ordering.
Guaranteed message delivery (exactly-once)
We have not identified any documentation that indicates whether Stream Chat supports exactly-once, at-most-once, or at-least-once delivery.
Automatic reconnections with continuity
We have not identified any documentation that indicates if Stream Chat supports automatic connection recovery with guaranteed stream continuity (message ordering and delivery).
It’s natural you’ll want to make sure the platform you choose for chat has a robust feature set, provides the functionality you need right now, and has the functionality to support you as you grow and your needs change.
1-to-1 chat & group chat
Ably offers pub/sub channels, a flexible pattern that’s ideal for 1-to-1, 1-to-many (broadcast), and many-to-many chat communication.
Private and public group chat
Ably allows you to set various permissions for authentication tokens, so you can control which clients have access to any given chat channel.
Chat UI components
We don’t provide chat UI components, but you can easily integrate Ably into whatever frontend presentation tier you want, regardless of framework or client technology.
This way, you have full freedom to customize the presentation tier and UX of your chat app.
Ably provides a unified API to deliver notifications, including native iOS and Android push notifications.
Message history (persisted data)
If persisted history is not enabled, Ably retains the last two minutes of instantaneous “live” message history in memory.
If persisted history is enabled, messages will be stored on disk for up to 72 hours.
You can also persist the last message published on a channel for up to one year.
Rewind / load previous messages
With Ably, you can build chat experiences with rich features, including:
Diverse feature set, including:
Supported languages, integrations, and protocols
The modern internet is a web of different programming languages, platforms, protocols, and services built on top of other services. This isn’t likely to change anytime soon, so a chat provider that offers SDKs in different languages, 3rd party integrations, and multi-protocol capabilities is what you should be aiming for.
25+ realtime (and REST) client library SDKs targeting every major language and development platform:
In addition, we also provide MQTT, message queue (AMQP), and STOMP client libraries.
9 client SDKs:
There are backend SDKs (for actions like generating user tokens) in 7 programming languages:
3rd party integrations
We offer a wide variety of integrations, so you can easily connect Ably to your preferred tech stack.
Streaming & queuing platforms
(NEW) You can automate the provisioning, management, and testing of Ably realtime infrastructure via our Terraform integration.
Stream Chat doesn’t offer any integrations with components like databases, event streaming platforms (e.g., Kafka), or serverless platforms, which are often used as part of a wider event-driven ecosystem.
The Ably protocol, which is used for realtime communication between the Ably servers and client SDKs is WebSocket-based. Note that we offer fallback transports such as XHR Streaming and XHR polling, for environments where WebSockets aren’t supported.
We believe interoperability is key, so we also support additional protocols:
Stream Chat uses WebSocket connections to propagate chat events to clients in realtime. Long polling is supported as a fallback transport.
Stream Chat doesn’t support any other messaging protocols, such as MQTT, SSE, or AMQP.
Security and compliance
Security and compliance are front of mind for many live chat use cases. Encryption, authentication, roles and permissions, and compliance with standards like SOC 2 are essential requirements for any chat solution.
256-bit AES encryption using private keys. This way, message payloads are opaque, can never be decrypted by Ably, and can only be decrypted by other clients that share your secret key (end-to-end encryption).
Data at rest is encrypted using AWS KMS CMK (Customer Managed Keys).
Data in transit is encrypted with TLS.
No native support for end-to-end encryption.
Ably authentication capabilities:
Stream uses JWTs to authenticate chat users. Note that you will need to implement a Token Provider before deploying your application to production.
Configurable chat roles & permissions
Ably allows you to set various permissions for API keys and tokens (e.g., right to subscribe to channels and presence events, right to publish, right to retrieve message history).
SOC 2 Type 2, HIPAA, GDPR, EU and US-only data storage.
ISO 27001, HIPAA, GDPR, SOC 2.
Data governance is not a concern with Ably. We only store data such as chat messages for short periods of time (2 minutes in case persistent data isn’t enabled, and up to 72 hours if it is enabled).
We offer integrations with tools like Kafka, Amazon Kinesis, Amazon SQS, and we support queues and webhooks, so you can easily move your chat data into your own long-term storage, and govern it as you see fit.
Data is stored by Stream.
Pricing and support
Is the pricing model flexible, scalable, and clear? What support options are available?
Our free package allows you to build a proof of concept and explore Ably’s features.
The free package comes with:
No credit card required.
30-day trial, which supports a maximum of 1.000 monthly active chat users (MAUs) and 200 concurrent connections.
There are 2 paid tiers: Pay As You Go, and Committed Use.
Pay As You Go pricing is calculated as follows:
Compared to the Free tier, the Pay As You Go plan offers a couple of extra benefits, such as data replication across regions, and a 99.999% uptime SLA.
If you are looking to exceed 25.000 channels, 25.000 connections, or 2.5 billion messages, we recommend the Committed Use tier.
Similar to the Pay As You Go tier, Committed Use offers a 99.999% uptime SLA. In addition, it comes with volume discounts and add-ons like:
There are 4 paid tiers:
All core features and unlimited message storage are included with all tiers. Some paid add-on upgrades are available for the Enterprise tier (e.g., 24/7 emergency phone, SAML/SSO).
Pricing increases if you exceed the number of allowed MAUs and concurrent connections. Overage rates are as follows:
Note that you will also be charged for images and files (the same price applies to all plans):
There are also additional fees (unclear how much) to be paid if you wish to use advanced moderation functionality.
Customer support is included in the package you choose - Free, Pay As You Go, or Committed Use (we don’t charge extra specifically for support).
Live chat and email support are available for all Aby users, irrespective of their plan.
The Committed Use plan comes with additional support channels and benefits, including:
For the Free and Pay As You Go plans, support is available between 9AM-5PM (UK & US East business hours). Meanwhile, for Committed Use customers, support is available 24/7, all year round.
Guaranteed response times:
Developer support plan
Business support plan
Enterprise support plan
The Enterprise support plan applies to the Enterprise pricing tier. It’s unclear how the 2 other support plans map to pricing tiers. It’s also unclear how much you have to pay for support.
Note: This comparison was created based on documentation and resources freely available online. The content was last updated on 15 Feb 2023 for Stream Chat, and on 23 Feb 2023 for Ably. Be sure to double-check everything before you make any decisions. If you do find anything incorrect or out of date, then please let us know.
Learn how organizations benefit from using Ably to deliver live chat experiences
HubSpot relies on Ably to power live chat between 128.000 businesses and their customers across 120 countries.
Ably has proven highly cost-effective, delivering a 60% upfront CAPEX saving and a further $300.000 saving every year in reduced infrastructure and engineering costs, compared with a self-built solution. Read HubSpot case study.
Ably makes realtime just work – without it, our product would literally stop working - but it is so much more than that. Ably is now a business-critical part of our organisation-wide infrastructure and a key innovation partner that our engineers really like working with. The support and communication are just outstanding and that is huge for us - we really see Ably as a partner in our growth.
With Ably’s help, Guild is able to deliver seamless live chat experiences for more than 5.000 professional communities and groups.
Ably has helped Guild cut time to market by months, and reduce development costs by an estimated £75.000+. Backed by Ably’s realtime infrastructure, Guild has enjoyed stellar growth - up to 500% year on year since launch. Read Guild case study.
Traditional ‘chat-in-a-box’ messaging apps are quite prescriptive. For Guild’s community and networking features, we wanted realtime infrastructure that could expand standard chat functionality. Using Ably infrastructure from the start of our product development process meant we could be sure we weren’t going to be constrained when it came to implementing innovative features. Ably’s enterprise functionality allows us to tailor realtime innovations specific to the use cases of our different customer groups.
Power not only chat, but all your realtime use cases with Ably
Unlike Stream Chat, Ably goes far beyond live chat experiences. We can help you with many other realtime use cases:
Broadcast realtime event data, such as live scores and traffic updates.
Add multiplayer collaboration features like live cursors to your apps.
Deliver cross-platform push notifications at scale.
Keep your backend and frontend in realtime sync.
Add realtime asset tracking capabilities to urban mobility and food delivery apps.