...

/

Requirements of a Chat Application

Requirements of a Chat Application

Understand the functional and nonfunctional requirements of the mobile chat application.

Messaging is the backbone of modern communication. Whether it’s sharing a quick voice note with a friend, coordinating group plans, or sending a document to a colleague, users expect their chat apps to respond instantly, work reliably across changing network conditions, and preserve their privacy. On mobile, this expectation becomes a design challenge. Limited memory, background restrictions, and network variability must all be accounted for, without letting any of it show to the user.

This lesson introduces the design problem for building a robust, high-performing mobile chat application. From handling message delivery in unreliable conditions to managing encryption and real-time presence, we will outline the problem space. We will then define the key functional, and nonfunctional requirements that shape how we approach this System Design.

Press + to interact

Understanding the design problem

Chat systems differ from content feeds or browsing experiences in one crucial way: interaction is active, not passive. There is urgency. When a user hits send, they expect their message to be delivered right away. When someone else starts typing, they expect to see that indicator blink within milliseconds. And when the app transitions to the background, it should quietly queue messages, receive pushes, and pick up exactly where it left off.

Let’s ground this in a real-world scenario. ...