Chat

How to Choose a Chat Service

6 min read Eric Grossman on May 15, 2020
How to choose a chat service | Pubnub

These days, if you want to engage your users where they are, in-app chat is the way to go. Take a look at any industry, and you’re likely to see a compelling case for chat:

Chat in healthcare lets patients consult their doctors. In-game chat lets players engage with one another to form communities. At virtual live events, audience members use it to connect with other viewers and participate more fully. And, live chat is an invaluable way for support and sales personnel in any industry to reach and work with customers.

Adding chat seems simple on the surface. But when you dig in, you quickly realize that chat isn’t just chat. Both on the front end, and in the messaging layer underneath, there’s plenty of work to do, and decisions you make today will affect you tomorrow.

When it comes to picking a chat service, there are two schools of thought. The first is: how does a service help me get off the ground now? This line of thinking focuses on key features and time-to-PoC, and is all about rolling out functionality quickly. Beyond this, though, comes the second mindset: How does a chat service support me down the line? The truth is, both approaches are crucial for anybody launching a product with chat today. 

Taking a birds-eye view, thinking about today and tomorrow together, a chat service needs to give you:

  1. A strong start with the right chat features

  2. The ability to scale as your app grows

  3. Resources to expand and optimize your offering

This guide will step through what each of these stages mean, and will take a deep-dive into the considerations you’ll need to make now to be successful at each step. Let’s get into it. 

Pick a Chat Service with the Features You Need

Here’s your starting point. At this stage, consider what you need now, and put together the foundation of your chat implementation. Think about the must-have elements of chat. These are the features that will set your chat apart, and make it something your users will want to engage with. 

Your main considerations are twofold. First comes the user experience. This is the galaxy of features users expect from their moment-to-moment experience. Second, you have technical considerations: the backing to make sure everything functions (and complies with regulations). Without these, your in-app chat just won’t work.

User Experience

Even if you’re building patient-doctor chat, or enterprise software, remember that every user is also a consumer. This means that they bring their expectations from apps like Slack, Messenger, and WhatsApp to any chat experience they have. This means you need a service that starts you off with:

  • UI: Present a visually appealing, useful, and accessible UI.

  • Usability: Give users real-time feedback, and enable a smooth user experience.

  • Responsiveness: Your app performs smoothly, with no lag or delays.

  • Moderation: Keep spam, abuse, and trolls out of your in-app chat.

Backend, Compliance, and Security

On that same note, stand-alone messenger apps have invested heavily in the backends that keep their experiences strong. When looking for a service, make sure it incorporates:

  • State Management: Keep local and remote instances in lock-step, so users stay on the same page.

  • Real-time messaging: Send, receive, and retrieve messages instantly.

  • Security: Encrypt messages and control access to channels.

  • Compliance: Handle sensitive data and protect privacy with ease.

Choose a Chat Service that Scales

Beyond the foundation, start looking to the future. As you prepare now for when your app takes off, you have two kinds of decisions to make. First are those that affect your app directly: how will you keep your app available at all times, and how will you ensure that it’s reliable?

Second, you need to make decisions that determine how much tech debt and developer pain you’ll face when you try to implement new features. Your engineers will thank you if your chat solution is both flexible and extensible, integrating with tools they already use and enabling the addition of new features.

Let’s take a brief look at each decision point to unpack what you’ll want to think about.

High Availability

Users are unpredictable: they’ll use your service at all hours, and they’ll take it with them wherever they go. Naturally, it’s your job to make sure your service is available when users need it. For this, you’ll need to select a chat service with data centers around the globe to avoid arbitrary service zones. Also, make sure data is replicated across those data centers, to help manage failures.

Speaking of failures, make sure your solution makes considerations for graceful failover. This means that, whenever a device can’t connect to the closest data center, it’ll automatically connect to the next-closest data center and catch-up on messages that haven't been delivered.

Reliability at Scale

In addition to availability, users also expect a reliable experience, especially as your traffic increases. In short, ensure that the network you use scales to handle unforeseen growth or unexpected usage spikes. This will keep your chat experience consistent regardless of when your traffic peaks – even if you go from having thousands of users one day to millions of users the next.

Flexibility for Developers

If your developers are already using popular services, don’t undermine their productivity with new, vendor-specific processes and tools. And, don’t risk your product’s quality by getting stuck in a proprietary ecosystem.

When you’re building chat, pick a solution that integrates with tools you’re already familiar with, those that already provide best-in-class functionality.

This means you should look for chat services that offer integrations with common providers like AWS, GCP, and Azure. Ideally, they should also offer open endpoints for custom integrations. Features like profanity filtering, translation, and custom routing logic should be built on the technologies your developers already use. Pick a chat service that lets you do just that.

By giving you the flexibility you’re used to, a good chat service will let you focus on your core functionality, and will let you benefit from the technologies you already trust.

In short, let your team do things their way, not the way a vendor requires.

Extensibility

It's likely that, down the line, you'll add new features to your app that work with chat. This could be anything from profanity filtering to custom triggers based on chat message content. As you go, keep this in mind: any functionality that works on chat messages needs to be compatible with the fast, responsive experience at the core of your app. If it upsets that fundamental service, it’s no good.

Traditionally, to process messages, you’d manually route traffic from your chat app to a server. But, unless you’ve already invested in your own routing infrastructure, you risk a bottleneck that slows and interrupts the chat experience. 

In this case, a hosted service that includes edge-compute capabilities or functionas-as-a-service is the best option. By performing work on messages in transit, edge-compute capable services give you the best of both worlds: split-second messaging, and extensive potential to add new features to your chat. 

Full-Service: Expand and Optimize

When your app has grown, look for offerings that work with you to support massive user-bases, complex app architecture, and mission-critical functionality. These are the crucial elements of best-in-class in-app chat, allowing it to scale with your service indefinitely.

Unlimited scale

Chat providers each have different approaches to handling massive amounts of simultaneous users. In some cases, they simply cap the number of users who can occupy chat at once. If you need to support large numbers of concurrent users, look for a chat provider that truly supports an unlimited number of chat participants.

Dedicated Support Agents

When you’re working at scale, you may introduce truly innovative architecture, or you may be integrating chat into an already-established application. In either case, having a dedicated support agent on-hand will allow you to make architecture reviews, and take deep-dives into how you’re implementing chat. This ensures that your resources are well-used, and can be a source for discovering powerful opportunities for optimization. 

SLAs (Service Level Agreements)

For any chat that’s critical, such as patient-doctor chat, emergency dispatch, or logistics handling, you need ironclad assurance that your chat service will be available when you need it. As you evaluate services now, be on the lookout for those that offer service-level agreements around their availability. These mean that, as you grow, the service can be trusted to support your always-on needs.

Go Beyond Chat

Unless you’re building a dedicated messenger app, you already know that chat is just one part of your app’s overall experience. If your product has other real-time functionality, like tracking deliveries on a map, or notifying users as events occur, you shouldn’t have to find a new vendor just to support new features. Instead, find a chat provider that also powers things like:

PubNub Chat makes it easy

To get up and running while future-proofing your roadmap, try PubNub Chat. We make it easy to build in-app chat, with all the features users expect, while leaving you in full control. And, because it’s built on our real-time communication platform, your chat will have unlimited scale and robust reliability from day one.