Sendbird vs. Stream (GetStream): Which chat solution should you use?
A head-to-head comparison between Sendbird and GetStream (Stream). Learn about their features, pros and cons, similarities, and differences.
What is Sendbird?
Sendbird is a Platform-as-a-Service (PaaS) that provides APIs and SDKs to enable messaging, chat, and voice and video calling in web and mobile apps.
The Sendbird Chat product is the primary Sendbird offering for building chat experiences. It’s an API-based service that gives developers tools to add realtime, 1-on-1, and group chat functionality to their apps.
Pros and cons of Sendbird Chat
What are the key pros and cons of using Sendbird Chat?
Sendbird Chat advantages
Feature-rich chat API, with diverse capabilities, including voice and video support, message and user moderation, push notifications, reactions, mentions, typing indicators, user presence, and read receipts.
Ready-made UI components for iOS, Android, React, and React Native, which helps save time versus building your own UI chat components.
Managed infrastructure layer that’s supposedly able to scale to 1 million+ concurrent connections per client app.
Compliance with security standards such as SOC 2, ISO 27001, HIPAA/HITECH, and GDPR.
Sendbird Chat limitations
Chat often goes hand-in-hand with other realtime use cases, such as multiplayer collaboration (think of Figma-like products, where you can edit your design collaboratively, and chat with other users, all in realtime). However, Sendbird is very much a chat-centric solution; if you’re looking to build other realtime experiences alongside chat, Sendbird can’t help; you will have to use different technologies, which brings additional complexity and increased costs to your project.
Sendbird Chat allows you to have a fixed number of monthly active chat users (MAUs) and concurrent (peak) connections. If you exceed the number of allowed MAUs & peak connections, you will be charged overages. However, there’s no transparency about exactly how much you will be charged. This is perhaps not the “friendliest” pricing model, especially if you’re dealing with a high number of users and traffic spikes.
While Sendbird infrastructure is deployed across 8 datacenters, you are required to choose a single region (datacenter) for an app to reside in. All chat traffic must therefore be routed through a single datacenter, regardless of a user’s location. This has negative implications on performance (increased latency), reliability, and availability. It’s probably one of the reasons why Sendbird provides a 99.9% uptime SLA by default. This SLA may not be reliable enough for critical use cases, such as healthcare chat.
Sendbird Chat offers a limited number of client SDKs (7 in total), with no support for languages like Java, Go, PHP, Python, or Ruby. It’s also worth mentioning that Sendbird has very limited options when it comes to integrations. It essentially only allows you to configure webhooks, but it offers no pre-built integrations with other components, like databases, event streaming platforms (e.g., Kafka), or serverless platforms.
What is GetStream (Stream)?
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.
Pros and cons of Stream Chat
What are the key pros and cons of using Stream Chat?
Stream Chat advantages
APIs and SDKs with diverse capabilities for building chat experiences with rich features like typing indicators, user presence, threaded conversations, push notifications, message & user moderation, reactions, user and channel mentions.
99.999% uptime SLA available (exclusively for Enterprise customers).
Provides managed infrastructure, so customers don’t have to deal with scaling and maintaining it themselves.
Claims it can handle 5 million+ concurrent users (WebSocket connections) in a single chat channel.
Stream Chat limitations
Oftentimes, live chat is not a standalone product, but, rather, a part of a wider realtime experience. For example, think of Uber-like ridesharing apps that offer live location tracking, while also allowing you to chat in realtime with the driver. Or imagine you’re developing a collaborative app (e.g., a whiteboard) where multiple users can work and chat in realtime. If you’re building these kinds of experiences, you can only use Stream for chat (and activity feeds, if relevant). For your other realtime requirements, you will have to use another solution. Of course, this leads to additional operational overhead and increased expenses for your project.
Stream Chat does not support multi-region chat architectures. All chat traffic is processed and stored in a single datacenter / region. This can have negative implications on performance (increased latency), reliability, and availability (single point of congestion and failure).
Chat application data (messages, channels, users) is stored by Stream Chat in their backend systems. This may be problematic for certain chat use cases, as it could lead to data governance-related concerns and issues.
Unlike other chat API providers, Stream Chat doesn’t currently offer native, production-ready APIs for video and voice calls. At the time of writing (Feb 2023), the Stream Chat team is actively developing their video and live streaming APIs, but it’s going to take a significant amount of time to equip them with the required features and make them ready for use at scale.
Sendbird Chat 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 API or SDK 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.
Note: This comparison was created based on documentation and resources freely available online from Sendbird and Stream. The content was last updated on 9 Feb 2023 for Sendbird Chat, and on 15 Feb 2023 for Stream Chat. 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.
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.
This amounts to roughly 8h 40m of service downtime/unavailability per year.
99.999% for enterprise customers.
99.95% for customers with the Business support plan.
No uptime SLAs are provided for customers with the Developer support plan.
Connect user latency from Amsterdam to US East (P99):
- 359ms (edge servers)
- 1155ms (regional proxy)
Connect user latency from Amsterdam to Mumbai (P99):
- 219ms (edge servers)
- 2197ms (regional proxy)
Connect user latency from Amsterdam to Singapore (P99):
- 255 ms (edge servers)
- 3112ms (regional proxy)
It’s unclear what kind of latencies you can expect when sending/receiving chat messages once the connection has been established.
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.
Claims it can scale to 1 million+ concurrent connections per client app.
Public chat channels can sustain up to 100K users.
Private chat channels are limited to 20k users.
Claims it can handle 5 million+ concurrent connections in a single channel.
Infrastructure / datacenters
The Sendbird infrastructure consists of 8 datacenters distributed in different regions (US West & East, Europe, Asia Pacific, Australia).
StreamChat is hosted on AWS in several regions:
- US East
- EU West
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).
You are required to choose a single AWS data center for an app to reside in. This can lead to increased latency, and negatively impacts reliability and availability - if the region goes down, then all apps hosted there are affected.
Even though Stream Chat is hosted in several different regions, it’s still a single-region service. 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 Sendbird Chat guarantees 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 what kind of messaging semantics are supported by Sendbird Chat.
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
Every Sendbird Chat SDK supports automatic reconnections (for scenarios where clients briefly disconnect).
However, it is unclear if upon reconnection no message will be lost, sent multiple times, or delivered out of order.
We have not identified any documentation that indicates if Stream Chat supports automatic connection recovery with guaranteed stream continuity (message ordering and delivery).
Ship chat experiences you can trust to deliver at scale
Ably is a solid foundation for any chat app. Our platform offers <65 ms round trip latency for 99th percentile, guaranteed message ordering and (exactly-once) delivery, global fault tolerance, and a 99.999% uptime SLA. In addition, our multi-region infrastructure can scale to handle millions of concurrently-connected devices.
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.
Private and public group chat
Chat UI components
Message history (persisted data)
Rewind / load previous messages
Diverse feature set, including:
- Typing indicators
- Message delivery receipts & read receipts
- User and channel mentions
- Unread message count
- Scheduled messages
- Channel list
- Message and user moderation (e.g. profanity filter, mute user)
- Multimedia support (audio, video, photos)
- Offline messages
Diverse feature set, including:
- Typing indicators
- Read receipts
- User and channel mentions
- Unread message count
- Message states
- Threaded conversations
- Mute channels
- Message and user moderation (e.g., image moderation, ban users)
- Media attachments and resizing
- Offline messages
Deliver feature-rich chat experiences with Ably
1:1 and group messaging over pub/sub channels, presence, reactions, typing indicators, authentication, and many more. Get started in minutes with our chat apps reference guide.
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.
- Android (Kotlin)
- React Native
- iOS / Swift
- Java / Jetpack Compose / Android
There are backend SDKs (for actions like generating user tokens) targeting:
3rd party integrations
Limited number of integrations:
- Chatbot interface that allows you to add your own chatbot that can send and receive messages.
- Custom webhooks to send data to your servers/systems.
Sendbird Chat offers no integrations with components like databases, event streaming platforms (e.g., Kafka), or serverless platforms.
- Integrations with 100ms and Agora for in-chat calling.
- Integration with Dolby.io for audio and video support in chat apps.
- Webhooks (to react to slash commands, push events to your server application, and modify/moderate message content).
- Amazon SQS integration (you can send event payloads to an Amazon SQS queue).
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.
WebSockets are used to maintain persistent connections between the Sendbird server and client SDKs. The documentation doesn’t indicate whether or not a fallback transport is supported (useful for environments where WebSocket connections are blocked).
The Sendbird Chat Platform API uses HTTP.
Sendbird Chat doesn’t support any other messaging protocols, such as MQTT, SSE, or AMQP.
Stream Chat uses WebSocket connections to propagate chat events to clients in realtime. Long polling is supported as a fallback transport.
There is a REST API that allows you to write your own API clients.
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.
TLS/SSL and AES-256 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.
Access tokens and ephemeral session tokens.
Also supports JWTs (but you will have to reach out to Sendbird support first to enable this functionality).
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
ISO 27001, HIPAA, GDPR, SOC 2.
ISO 27001, HIPAA, GDPR, SOC 2.
Data is stored by Sendbird.
Data is stored by Stream.
Deliver highly secure & compliant chat experiences with Ably
Benefit from flexible authentication (including API keys and JWTs) with fine-grained access controls, SSL/TLS, 256-bit AES & end-to-end encryption, and compliance with SOC 2, HIPAA, and EU GDPR.
Learn more about Ably’s security and compliance.
Pricing and support
Is the pricing model flexible, scalable, and clear? What support options are available?
The free package allows a maximum of 100 monthly active chat users (MAUs) and 10 peak concurrent connections.
30-day trial, which supports a maximum of 1.000 monthly active chat users (MAUs) and 200 concurrent connections.
There are 3 paid tiers: Starter (from $399/ month), Pro (from $599/ month), and Enterprise (custom pricing).
The Starter and Pro tiers start from 5k MAUs, while the Enterprise tier is advertised as being suitable for use cases with millions of MAUs.
There are some feature availability differences between the 3 tiers. For example, the Starter tier can’t implement delivery receipts, and can only use limited chat moderation features. Another example - the Enterprise tier comes with paid add-ons (e.g., private dedicated servers) that aren’t available for the other tiers.
Pricing increases as the number of MAUs increases. For example, the Starter package with 25K MAUs costs $1.199/ month. The Pro package with 25K MAUs is as expensive as $1.799/ month.
Note that there’s a cap on the number of peak concurrent connections: 5% of MAUs. If you exceed the number of MAUs or peak concurrent connections, you will have to pay for overages. It’s unclear how much you’ll be charged for overages, but it’s something to bear in mind if you have a growing number of MAUs, and you’re expecting bursts of chat clients connecting simultaneously.
There are 4 paid tiers:
- Startup ($499/month). 10.000 MAUs, 500 concurrent connections.
- Standard ($1299/month). 25.000 MAUs, 1250 concurrent connections.
- Premium ($2299/month). 50.000 MAUs, 2500 concurrent connections.
- Enterprise (custom pricing). 100.000 MAUs, 5000+ concurrent connections.
All core features are unlimited message storage is 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:
- $0.08 per user, $0.75 per concurrent connection (Startup).
- $0.08 per user, $0.65 per concurrent connection (Standard).
- $0.04 per user, $0.55 per concurrent connection (Premium).
- Custom pricing for Enterprise.
Note that you will also be charged for images and files (same price applies to all plans):
- Bandwidth. $0.12 per GB.
- Storage. $0.05 per GB.
- Resized images. $4 per 1.000 images.
- Video preview images. $4 per 1.000 images.
There are also additional fees (unclear how much) to be paid if you wish to use advanced moderation functionality.
The base customer support plan (which is included in any paid package) offers best-effort response time, irrespective of the issue’s priority. The base plan is available for 9 hours per day.
There are also 4 paid support plans (L1-L4). For example, L4 costs 10% of your monthly expenditure (or a minimum of $10.000/month). It comes with a guaranteed response time of 1-6 hours (depending on issue priority). L4 support is available 24/7, and there are some extra benefits (e.g., customer success manager).
Developer support plan
- No uptime guarantee
- Ticket/email support
Business support plan
- 99.95% uptime SLA
- Slack support in addition to email/ticket support.
- 4-hour response time for critical issues, and 3 days for non-critical issues
Enterprise support plan
- 99.999% uptime SLA
- 24/7 support in addition to Slack and email/ticket.
- 2-hour response time for critical issues, and 2 days for non-critical issues.
The Enterprise support plan applies to the Enterprise pricing tier. It’s unclear how the 2 other support plans map to pricing tiers.
Transparent, usage-based pricing to deliver chat experiences at scale
With Ably, you pay for the messages, peak active channels, and peak connections you use for the month. No hidden costs. Learn more about Ably’s pricing.
Sendbird vs GetStream (Stream): which platform has the best chat API?
This isn’t a question we can answer outright. Both Sendbird Chat and Stream Chat have their pros and cons when it comes to delivering chat experiences. Here’s a recap of the major similarities:
The Stream and Sendbird chat services are single-region solutions: you have to choose a single region (datacenter) for a chat app to reside in. This can lead to increased latency and negatively impacts reliability and availability - if the region goes down, then all apps hosted there are affected.
Both Stream and Sendbird are compliant with standards like SOC 2 and HIPAA.
Stream Chat and Sendbird Chat have a similar pricing model: they charge for the number of monthly active users (MAUs), and enforce a maximum number of concurrent connections. If you exceed the number of allowed MAUs & concurrent connections, you are required to pay overages.
And here are their key differences:
Stream Chat is more reliable, with uptime SLAs of 99.95% and 99.999% (for Enterprise accounts). Meanwhile, Sendbird offers a 99.9% uptime SLA.
Stream Chat seems to be a more scalable solution - it claims it can handle up to 5 million+ concurrent connections in a single chat channel. In contrast, Sendbird Chat can scale to 1 million+ concurrent connections per client app, and group chats are limited to a maximum of 20.000 users (private channels) / 100.000 users (public channels).
The Sendbird network has datacenters in 8 regions. In comparison, Stream Chat is only hosted in 5 regions.
It is ultimately up to you to decide if Sendbird Chat or Stream Chat is the best choice for your specific chat use case.
There are, of course, alternative solutions you can use to deliver live chat experiences:
Some of them, like Ably, offer a comparable feature set, and superior guarantees around reliability, availability, and performance at scale.
Discover Ably, your Sendbird & GetStream alternative for shipping chat experiences at scale
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.
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 features like online/offline status indicators, reactions, typing indicators, and read receipts.
Our globally-distributed, multi-region infrastructure 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
Learn how Ably compares to Sendbird Chat and Stream chat:
Power not only chat, but all your realtime use cases with Ably
Unlike Stream Chat and Sendbird Chat, Ably goes far beyond live chat. We can help you with many other realtime use cases:
Broadcast realtime event data, such as live scores and traffic updates.
Facilitate multiplayer collaboration on shared projects and whiteboards.
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.