April 30, 2019
After years of work we developed our own version of chat architecture and its components which helps us to create well-structured and successful chats. Join us to see how we do it!
So, what is a well-architectured chat? Hmmm, that’s the question!
The major task that we at Yellow have to solve every time that we embark on a new chat building project is how to make the chat scalable and tailored to the customer’s wishes. Having engineered chats for a wide range of products, we found out that the task can be resolved at the level of chat architecture.
In this article, we’re going to share our approach to chat architecting and explain why we consider it a good chat building practice. Here we go!
First, let’s take a look at our version of chat architecture and its components.
A chat consists of two major parts:
Both parts contain various components that communicate to each other and bring the chat into action.
Chat Server Engine is a core of the chat architecture that handles message delivery and dispatch. In our version of chat architecture, it includes the following components:
Chat App is the other major part of the chat architecture, the one that users directly interact with. It's split into three separate root components:
Separation of components is at the core of our chat architecture. All the services that the architecture comprises are independent from each other. Why? It’s beneficial from many perspectives:
The same is true for migration. If you want to migrate one component to another service, you can do so without disturbing the rest of the components. We’ve seen it ourselves when we migrated one of our products, Famlicious, from one service to another.
Famlicious is a family messaging app for keeping in touch with all family members.
Some of the components of the Famlicious architecture—WebSocket Server, Chat Server Engine, and Chat Client Engine—were run on QuickBlocks. One day, QuickBlocks stopped being supported, which means we couldn’t use it in the project anymore. We started thinking of the alternatives and chose PubNub.
As far as all of the components in the Famlicious architecture are fully independent from each other, we managed to migrate the three components from QuickBlocks to PubNub without involving the entire architecture. And what’s even more important, migration didn’t affect the app operation at all and went totally unnoticed by the users.
Do you also have a tricky issue with your product? We'll solve it!
Get in touchThat was a brief introduction into the topic of chat architecture. In the coming articles, we’re going to go deeper into the role of every chat component and share more good practices on how to build chats. Stick around and remember to visit our LinkedIn page for other engaging topics.
✔Read next:
How to Create a Chat App like WhatsApp: The Extensive Guide
Got a project in mind?
Fill in this form or send us an e-mail
Get weekly updates on the newest design stories, case studies and tips right in your mailbox.