- Realtime technologies
- Stream (GetStream) alternatives: 5 competitors to consider in 2023
Stream (GetStream) alternatives: 5 competitors to consider in 2023
Copy link to clipboardStream overview
Stream (formerly GetStream) is a PaaS that provides APIs and SDKs that developers can use to build and embed live chat into their web and mobile applications. Stream makes it possible to build chat experiences with rich features like typing indicators, user presence, threaded conversations, push notifications, message & user moderation, reactions, user and channel mentions.
However, Stream has its limitations:
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 in their backend systems. This may be problematic for certain chat use cases, as it could lead to data governance-related concerns and issues.
Stream is a chat-focused solution. If you need to deliver other realtime experiences to go alongside chat (for example, multiplayer collaboration, or broadcasting live sports data), Stream can’t help; you have to use a separate technology.
Copy link to clipboard5 alternatives to Stream for live chat experiences
We’ll now look at Stream alternatives that allow you to ship live chat functionality. Here are the five solutions we’ll cover:
Copy link to clipboardFirebase
Firebase is a Backend as a Service (BaaS) platform that allows you to build, test, release, and monitor web and mobile apps for end-users. You can combine several Firebase capabilities to add chat functionality to your apps: Firebase Authentication, Firebase Realtime Database/Cloud Firestore (to store chat data and sync it in realtime to connected client devices), and Firebase Cloud Messaging (to send notifications so that users get new chat messages if they’re in another app).
Firebase helps app developers move quickly: you don’t have to worry about hosting, provisioning, and managing backend processes and components like databases, data storage, and authentication. Firebase makes the entire development cycle shorter and more straightforward.
Firebase has good technical documentation, and detailed SDK and API references, making it easy to get started and use the platform. Going beyond docs, there are about 1.5 million apps built with Firebase, so there’s a pretty big community of experts who can help you with questions and issues.
Most Firebase services are free to start with, which is great if you are new to Firebase and simply want to test the platform, assessing if it’s the right choice for your chat use case.
An instance of the Firebase Realtime Database has a limit of 200.000 concurrent connections and 1.000 write operations per second. To scale beyond these limits, you have to use sharding, which is a notoriously difficult process. Alternatively, you can opt for Cloud Firestore, which auto-scales up to a more generous limit: roughly 1 million concurrent connections. However, if you need to scale beyond 1 million users, Cloud Firestore can’t help you. In addition, unlike the Realtime Database, Cloud Firestore does not support presence natively, which is a key feature for any chat app.
Firebase comes with a database-centric architecture. Any updates being streamed in realtime between chat users must go via the database. This forces you to permanently store even the transient events that need to be sent to users, leading to an unnecessary increase in storage costs. An example of transient messages in a chat app scenario would be typing indicators – events that occur frequently but have zero need for permanent storage.
There are plenty of horror stories of costs escalating out of control, especially if you are new to Firebase, and don’t yet have a good grasp on the pricing model and how to engineer your app in a cost-effective manner. See How not to get a $30k bill from Firebase and We burnt $72K testing Firebase + Cloud Run and almost went bankrupt for details.
Learn about building chat experiences with Firebase and the associated challenges
Copy link to clipboardSendbird
Sendbird is a Platform-as-a-Service (PaaS) that provides APIs and SDKs to enable 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.
Sendbird Chat advantages
Feature-rich chat API, with diverse capabilities, including voice and video support, chat UI kits, message and user moderation, push notifications, reactions, mentions, typing indicators, user presence, and read receipts.
Managed infrastructure layer that’s supposedly able to scale to 1 million+ active users 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.
While Sendbird infrastructure is deployed across 8 datacenters, you are required to choose a single region (datacenter) for an app to reside in. This has negative implications on performance (increased latency), reliability, and availability. It’s probably one of the reasons why Sendbird can only provide a 99.9% uptime SLA.
Sendbird Chat offers a limited number of chat 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 and event streaming platforms (e.g., Kafka).
Copy link to clipboardSocket.IO
Created back in 2010, Socket.IO is a well-known open-source library that enables low-latency, bi-directional communication between web clients and servers. Socket.IO is built on top of the WebSocket protocol and provides additional capabilities such as automatic reconnections, or falling back to HTTP long polling.
Multiplexing (namespaces), which enables you to minimize the number of TCP connections used, and rooms, which come in handy when building group chat, as they allow you to broadcast events to all connected users.
Disconnection detection (configurable Ping/Pong heartbeat mechanism) and automatic reconnections.
Integrations with various solutions for horizontal scaling: Redis, MongoDB, Postgres, AMQP / RabbitMQ. Note that you have to use one of these when you scale beyond a single Socket.IO server, to pass events between nodes, and ensure that events are properly routed to all clients.
Socket.IO does not guarantee exactly-once delivery, which is essential for a good UX. By default, an at-most-once guarantee is provided. Socket.IO can also be configured to provide at-least-once guarantees, although this brings additional engineering complexity - you have to use acknowledgments, timeouts, assign a unique ID to each event, and persist events in a database.
Socket.IO is a simple solution, with limited capabilities for building chat apps. For example, you have to do extra work to implement core chat features like typing indicators, read receipts, or emoji reactions, as Socket.IO doesn’t provide these features out of the box. Additionally, it doesn’t offer a way to generate and renew tokens for authentication, nor does it support end-to-end encryption.
Designed to work in a single region, rather than a multi-region architecture. This can lead to issues such as increased latency (if you have users in different parts of the world), and system downtime - what happens if the datacenter/region where you have your Socket.IO servers goes through an outage?
Copy link to clipboardTwilio
Twilio is a Communications Platform as a Service (CPaaS). It offers APIs that enable realtime communication via chat, VoIP, MMS and SMS notifications, video, and email. The Programmable Chat API used to be the main Twilio product for delivering chat functionality. However, Programmable Chat was retired in 2022. Its successor is the Twilio Conversations API - a solution that makes it possible to add 1-to-1 and multiparty chat to your apps.
Twilio Conversations advantages
Compliance with several different security standards: ISO 27001, HIPAA, GDPR, SOC 2.
Twilio Conversations is an omnichannel messaging product; it allows you to build chat experiences across different channels, such as WhatsApp Messaging, Facebook Messenger, web-based and in-app chat.
Hosted API, so customers don’t have to deal with scaling and maintaining chat infrastructure themselves.
Twilio Conversations limitations
Limited feature set. For example, you can’t use Twilio Conversations to implement public group chat, and there’s no support for some common chat functionality like mentions and emoji reactions.
Twilio 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).
Oftentimes, chat is not a standalone product, but, rather, a part of a wider realtime experience. For example, there are plenty of multiplayer games with embedded chat. Or, think of Uber-like ridesharing apps that offer live location tracking, while also allowing you to chat in realtime with the driver. If you’re building these kinds of experiences, you can only use Twilio for chat, while 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.
Copy link to clipboardAbly, the most reliable chat solution to use instead of Stream
Ably is a realtime experience infrastructure provider. Our APIs and SDKs help you power realtime functionality for use cases like live chat, multiplayer collaboration, and data broadcast, without having to worry about managing and scaling messy realtime infrastructure.
Key Ably features and capabilities
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 provide flexible building blocks like pub/sub messaging over WebSockets, presence, and message interactions, so you can build rich 1:1 and group chat experiences, with diverse features, including:
Last seen indicators
Chat admin privileges
See how Ably compares to Stream
We have client SDKs for every major programming language and development platform, and we offer a wide variety of integrations, so you can easily connect Ably to your preferred tech stack.
Build chat experiences you can trust to deliver at scale
Sign up for a free Ably account, and check out our chat apps reference guide to get started.
Top Twilio alternatives to consider in 2023
Discover the best Twilio alternatives and competitors you can use to build 1-to-1 and group chat experiences.
5 great Pusher alternatives to consider
Read about 5 Pusher alternatives for developing functionality like live chat, realtime location tracking, activity feeds, and realtime charts and graphs.
Firebase alternatives: The best competitors to consider in 2023
Discover the best alternatives to the Firebase Backend as a Service platform for realtime messaging and push notifications in 2023.