Pusher vs Sendbird
If you need realtime chat functionality in your application, you're almost spoiled for choice. The first question is, do you want an out-of-the-box chat platform that offers less flexibility or do you want more control at the price of having to write and maintain more of your own code? Then you need to decide between different offerings.
In this article, we'll aim to make that decision easier by comparing two options. Sendbird, which is a dedicated chat platform, and the more flexible option Pusher. We'll look at how they differ in terms of what they do, the guarantees they offer, and how they charge for their services, with a particular eye on how both offerings shape up when it comes to building realtime chat into your applications.
Pusher vs Sendbird high level overview
Before we can review the details of Pusher and Sendbird, we need to understand how they compare at a high level:
Pusher: A general purpose realtime platform that you can use to build chat and messaging experiences, amongst other realtime experiences.
Sendbird: A dedicated chat as a service product that focuses on helping you build chat, as well as notifications and voice and video conversations, into your applications.
In other words, the main difference between Pusher and Sendbird is in how flexible they are. Pusher promises to let you build any functionality that relies on low latency messaging, whereas Sendbird limits you to building chat-like applications.
What is Pusher?
As we've seen, Pusher is a realtime platform as a service (PaaS). It is owned by the CRM and marketing automation provider MessageBird and comes in two distinct parts:
Pusher Channels: A publish-subscribe platform for realtime message delivery.
Pusher Beams: Native push notifications for iOS, Android, and web clients.
If you've used message brokers, like RabbitMQ or even Kafka, then Pusher Channels offers a broadly similar service. It is based on the WebSocket protocol, allowing you to send and receive messages at low latencies. When we're discussing chat, the word "message" can mean more than one thing. In Pusher's case, we're talking about low level messages rather than something that end users deal with directly.
That's an important distinction when we're comparing Pusher with Sendbird, due to Sendbird's exclusive focus on chat. With Pusher Channels, a message is any item of data that you want to move from one part of your application to another. For example, a sensor reading from an IoT device or a chat message.
Pusher Beams abstracts web and mobile notifications into a single interface.
So, what are the reasons that you might choose Pusher and where does it fall down?
Advantages of Pusher
General purpose realtime platform: You can build any message-based functionality using Pusher. That means you might get a better return on your investment in introducing Pusher into your application infrastructure than you would with a dedicated chat service.
Protocol flexibility: WebSocket is Pusher's default protocol and that's available in all modern browsers, as well as iOS and Android mobile devices. On the backend, there are libraries for using WebSocket with just about every language and framework. However, where WebSocket is unavailable, Pusher can fall back to other methods such as HTTP long polling.
Developer experience: Pusher offers SDKs for web and mobile clients, as well as on the server with Rails, NodeJS, PHP, and other libraries.
Security: Pusher offers end-to-end message encryption and complies with both GDPR and ISO27001 standards, while offering guidance on how to make your applications HIPAA-compliant.
Disadvantages of Pusher
Lower level functionality: Pusher gives you the building blocks to create low latency, messaged-based functionality. That means you'll need to create your own chat functionality on top of Pusher's APIs.
Weak delivery guarantees: Pusher promises only that messages will reach their destination "under normal system operation", leaving you to create your own message tracking and retry functionality. Similarly, Pusher doesn't guarantee that it will deliver your messages in order. In the context of a chat application, missing or out-of-order messages could confuse or frustrate users, so you'll need to build message ordering into your application.
No message history: Sending messages across the open internet means dealing with unpredictable mobile network coverage and other issues that can prevent clients and servers from connecting. If you can store message history, you can pause message delivery when a client disconnects. When they reconnect, you can replay what they've missed. Pusher doesn't store messages, although it can cache one message in memory for up to 30 minutes. This limitation means you are responsible for processing message streams, storing them in your own database, and scaling your infrastructure to meet demand. Building and maintaining this additional infrastructure can significantly complicate your operations.
Single region: The reliability of your app depends on its ability to work around failure. Pusher routes all of your data through a single location. In the event of an outage in that cloud region, your app's messaging functionality will go offline. This is not just a theoretical problem. Core parts of Pusher's infrastructure have been unavailable or have suffered from degraded service in recent months. Another impact is that latency increases the further a user is from the single Pusher location.
What is Sendbird?
Sendbird markets itself as a communications API platform. What that means in practice is that Sendbird offers a number of products for integrating text, voice, and video chat into your application infrastructure. Specifically, Sendbird offers APIs for:
AI chat bots
Omnichannel messaging for customer service and similar use cases
In-app chat
Voice and video calling
Other uses cases including support, chat moderation, and integration with Salesforce
As you can see, Sendbird operates at a higher level of abstraction than Pusher. Rather than giving you lower-level tools to pass data between systems, Sendbird offers APIs designed purely for chat and similar functionality. That should mean that you can get your chat functionality to market faster with Sendbird so long as Sendbird's offering matches your needs.
Let's look at Sendbird's pros and cons to help clarify whether it could be a good choice for your project.
Advantages of Sendbird
Focused solution: With Sendbird, there's less for you to code. Instead of building a chat experience from scratch, you can use Sendbird's ready-made solutions in your applications. That is as true for the front as the backend, as Sendbird offers UI kits as a short-cut for implementing a chat frontend.
Specialized APIs: As well as a generalized chat solution, Sendbird offers products tailored to specific use cases, such as support desk conversations, AI chat bots, business messaging, and live video streaming.
Complies with standards: Chat must comply with regulations if you're targeting end users in specific regions, such as the EU, or industry verticals such as healthcare. Sendbird complies with regulatory standards including SOC 2, ISO 27001, HIPAA/HITECH, and GDPR.
Familiar chat experience: Your end users will feel at home as the chat experience offered by Sendbird matches that offered by widely used messaging apps. Key chat features include read receipts, typing indicators, moderation tools, as well as options for direct messaging and engaging in both private and public group chats.
Disadvantages of Sendbird
Single location only: Whichever Sendbird cloud location you choose, it is a single point of failure. If your chosen region experiences an outage, so does your chat service. There's also an impact on user experience. For example, a user in Saõ Paulo will face higher latency if they participate in a chat hosted in Sendbird’s US West region, compared to a user in San Diego.
Weak guarantees: Like Pusher, Sendbird doesn't guarantee that messages will arrive in order or at all. However, because Sendbird is designed to be a chat solution rather than a lower level tool, it might be harder to build those guarantees yourself
Higher pricing: As we've noted, Sendbird offers a complete chat solution. That means you'll pay more in service fees than if you build your own chat solution on top of a realtime platform. At small scales this might not be an issue. However, Sendbird's pricing could become a problem as your user base grows. At the time of writing, supporting 25,000 monthly active users costs from $1,199 per month. Pricing for higher numbers is available on request.
Limited concurrent connections: Sendbird allows you to connect just 5% of your monthly active users at the same time. This is especially problematic if you have infrequent events that attract a large proportion of your user base. For example, if you're building a fan experience around a sports team and you want to engage a large number of them in a chat experience during live games, Sendbird's limit on concurrent users will be a problem. Sendbird offers ways to support more concurrent connections but they come with downsides. Open channels support higher numbers of members by limiting functionality. For example, they do not save messages and they partition out into multiple sub-channels once the number of members hits numbers as low as 2,000. Group channels offer more functionality, such as message storage and ongoing memberships, but they are limited to 100 concurrent users. Supergroup channels offer a mix between the two, allowing concurrent user numbers to grow beyond 100 people but at the expense of functionality, such as rate limiting notifications to one every ten minutes.
Limited scope: Even if your realtime project starts with chat, it's likely that you'll find other realtime use cases later on. For example, data broadcast to users. Sendbird can only help you deliver chat related functionality. It also lacks when it comes to integrations with analytics, storage, and other tooling.
No edge network: You can locate your chat backend in one of eight AWS locations if you're using Sendbird's standard platform, but at the time of writing Sendbird doesn't offer an edge network to bring chat functionality closer to end users.
Pusher vs Sendbird feature comparison
We've seen the broad overview of what Pusher and Sendbird offer. But which one offers the best feature set for the needs of your application and its users? We can help answer with a side-by-side comparison of both offerings.
Performance, reliability, scalability, and messaging guarantees
Let's start with the promises that Pusher and Sendbird make when it comes to the fundamental performance of their platforms. The question we're asking here is how much you can rely on either product to deliver over the lifetime of your application.
Feature/capability | Pusher | Sendbird |
Uptime guarantee | Pusher no longer publishes an uptime guarantee but, previously, it offered a 99.95% SLA (equivalent to 21 minutes downtime every month). | 99.99% (up to almost an hour’s downtime per year). |
Latency | Pusher doesn't publish latency stats but their materials mention latencies of under 240 ms. | Unknown |
Scalability | Pusher's pricing suggests that enterprise plans can scale to 10 million or more concurrent connections. Pusher claims to scale to billions of messages. | Sendbird claims it can scale to 1 million concurrent connections per client app. A public chat channel can sustain up to 100K users. Private chat channels are limited to 20k users. |
Infrastructure | ||
Multi-region | No. You must choose one region. | No. You must choose one region. |
Guaranteed message ordering | If you send each message individually, they will arrive in a random order. However, you can batch messages together, in which case they will be delivered at the same time and in order, albeit with greater average latency than if each message were sent individually. | The order of messages within a group or channel is guaranteed. If messages are being delivered to a webhook, their order is also preserved. |
Guaranteed message delivery (exactly-once) | Unknown | |
Automatic reconnections with continuity | Pusher supports automatic reconnections but you'll need to store and load message history within your own code. | Sendbird Chat SDKs automatically reconnect after brief disconnects. However, it's not clear if Sendbird replays missed messages following a disconnection. |
Chat features
Chat is about more than relaying messages between users. So what do Pusher and Sendbird have to offer when it comes to richer functionality, such as reactions, message history, and user presence?
Feature | Pusher | Sendbird |
1-to-1 chat | You must implement it on top of Pusher Channels. | Yes |
Group chat | You must implement it on top of Pusher Channels. | Yes |
Public and private group chat | You must implement it on top of Pusher Channels. | Yes |
Chat UI components | No | Yes (iOS, Android, React, React Native). |
Push notifications | Yes, with Pusher Beams. | Yes |
Message history (persisted data) | Yes (6 months by default, longer available at additional charge). | |
Rewind/load previous messages | One message is cached for up to 30 seconds. | Yes |
User presence | You must implement it on top of Pusher Channels. | Yes |
Advanced chat features | None, unless you implement them. | - Typing indicators - Message delivery receipts & read receipts - Reactions - User and channel mentions - Unread message count - Scheduled and offline messages - Channel list - Message and user moderation (e.g. profanity filter, mute user) - Multimedia support (audio, video, photos) |
Supported languages, integrations, and protocols
Do Pusher and Sendbird work with your preferred languages and frameworks? Do they make it easier to create the frontend user interface for your chat functionality?
Feature | Pusher | Sendbird |
SDKs | Pusher offers official client and server SDKs for 16 languages/frameworks. | Sendbird Chat offers client SDKs for: - iOS |
UI widgets | No | Sendbird Chat offers UI kits/widgets for: - iOS |
3rd party integrations | Datadog and Librato for application performance monitoring. | Sendbird doesn't provide pre-built integrations. However, it gives you two interfaces to make your own: A Chatbot API that lets chatbots join conversations. Webhooks to initiate third-party actions based on chat platform events. |
Protocols | The Pusher Channels protocol builds on top of WebSocket, falling back to HTTP streaming and polling if WebSocket is unavailable. | Sendbird connects chat clients via WebSocket. If WebSocket is not available, it shifts to HTTP polling. For setup and other admin tasks, Sendbird uses HTTP. |
Security and compliance
Before you can trust your data, and your users' data, to a third-party platform you need to be sure that it meets the right security requirements.
Feature | Pusher | Sendbird |
Encryption | In-transit: SSL/TLS At rest: AES 256 encryption | |
Authentication | Bearer tokens | Access tokens and ephemeral session tokens. JWTs available on request. |
Configurable chat roles & permissions | No | Yes |
Compliance | Complies with GDPR and ISO 27001:2013. Offers advice on how to comply with HIPAA when using Pusher. | ISO 27001, HIPAA, GDPR, SOC 2. |
Pricing and support
You'll notice a significant difference in pricing between Pusher and Sendbird, which reflects their distinct roles. While we can't advise on whether the price difference justifies the additional or reduced engineering effort required, we can help you compare their features and costs.
Feature | Pusher | Sendbird |
Free plan | Free sandbox plan that offers: - 200,000 messages per day - 100 concurrent connections - Support with a target response time of 48 hours | Free developer plan that offers: - 100 monthly active users - 10 peak concurrent connections - Unlimited number of messages - Access to “Pro” plan features - Community support |
Pricing model | Pricing is based around number of messages per day and concurrent connections. Packages include Startup, Pro, and Growth Plus. For example, at the time of writing, the Pro plan is $99 per month and allows for 4 million messages per day with a maximum of 2,000 concurrent connections. | Pricing depends on number of monthly active users. Starter, Pro, and Enterprise plans offer different levels of functionality, each of which charges differently for the number of active users. For example, at the time of writing, the Starter plan is $399 per month for 5,000 MAU, whereas the Pro plan is $599 for 5,000 MAU. |
Support offering | Support depends on the package you buy. Lower priced packages offer Pusher's "Standard" level of support, which targets a 48 hour reply window, while "Premium" support targets 24 hours. | Sendbird offers best effort support with the option to buy annual support plans at an additional cost. Sendbird does not offer an uptime SLA without an add-on support plan. |
Pusher vs Sendbird: which is the better platform?
As we saw earlier, Pusher and Sendbird promise to solve two distinct problems:
Pusher: You need to distribute low latency messages and you want to retain the flexibility to build precisely the solution your stakeholders need.
Sendbird: You want to deliver chat functionality quickly, even if it means some compromises.
If you expect that you'll need to build something other than chat then you might need to consider more flexible alternatives to Sendbird. But how do you choose between Pusher and Sendbird if either one fits the needs of your project? Let's look at the similarities and differences between both offerings.
Differences between Pusher and Sendbird
The scope of what you can build: Pusher is a general purpose low latency messaging platform, whereas Sendbird focuses on chat.
How you code you'll need to write and maintain: The tradeoff for Pusher's flexibility is that you need to create the functionality that Sendbird gives you out of the box. That goes for backend chat functionality as well as the frontend, as Sendbird offers UI kits to save you time in creating a chat experience.
The infrastructure you'll need: Similarly, if you're building with Pusher then you'll need to consider what other tooling you'll need. For example, Pusher doesn't store message history. Unless you're building an ephemeral chat application, you'll need to store and replay chat history, meaning you'll need a separate database.
Pricing: Pusher's free sandbox plan appears more generous than Sendbird's lowest paid plan. However, that's because Sendbird delivers much more functionality. If you need to support more than a few thousand monthly active users, and more than a few hundred concurrent users, then Sendbird's pricing could make it economically unviable.
Similarities between Pusher and Sendbird
Single point of failure: Both Pusher and Sendbird ask you to choose a single cloud location. Neither offers a multi-region option. If that cloud region suffers performance issues, so does your application.
Service degrades the further users are from the datacenter: Latency increases with distance from the single cloud location you choose. That makes it harder to offer a high quality service to people outside the region near the datacenter.
WebSocket with fallbacks: Both Pusher and Sendbird favor WebSocket, which is good for availability across browsers and devices, with fallback to older methods if WebSocket is unavailable.
Should you choose Pusher or Sendbird?
If you have a chat project, then the decision comes down to how much flexibility you want to have over the features you can offer to end users and whether you might want to create non-chat functionality in future. Sendbird can get you up and running quickly but Pusher could offer greater flexibility.
Of course, Pusher and Sendbird aren't your only options. Our realtime platform as a service, Ably, gives you much greater flexibility than Sendbird while offering a more robust service than Pusher.
Build chat or any other realtime service with Ably
Ably is a realtime experience platform used by HubSpot, I7Live, SportsBet, InvitePeople and more to power their fully-featured and reliable chat.
Our new product, Ably Chat, is designed to deliver a great chat experience for use cases from livestreams and in-game communication to customer support and social interactions in SaaS products.
It comes with purpose-built APIs for quickly building out chat features, including realtime messaging, online status and presence tracking, typing indicators, and room-level reactions. Built on Ably's core platform, Ably Chat streamlines the complexities of realtime chat architecture, providing a powerful and flexible solution for a wide range of use cases.
Even outside of chat, one of the great advantages of Ably is that it gives you the platform to build and operate any realtime functionality. That includes multiplayer collaboration, data broadcast, and IoT device communication. And Ably does that with stronger reliability and lower latency than either Pusher or Sendbird, thanks to:
Global network reach: You don't need to choose just one location. Instead, Ably distributes your workloads across a global network of edge locations.
<50 ms latency: Ably operates in realtime, no matter where your end users are located, thanks to ultra low latencies.
Strong guarantees: Ably guarantees that messages arrive in order and on time, saving you from having to build additional code to track and resend messages.
99.999% uptime: Ably’s dedicated team works 24/7, so you can have peace of mind even during high-demand periods.
Elastic scaling: From thousands to billions of messages, Ably meets your application’s demands seamlessly.
A great developer experience: with SDKs targeting more than 25 languages and frameworks, integrations with common tooling, and industry leading documentation, Ably’s developer experience gives you the tools to become productive quickly.
Discover how Ably empowers you to integrate global, scalable, and efficient realtime experiences of all kinds.