14 Design a text messaging app

This chapter covers

  • Designing an app for billions of clients to send short messages
  • Considering approaches that trade off latency vs. cost
  • Designing for fault-tolerance

Let’s design a text messaging app, a system for 100K users to send messages to each other within seconds. Do not consider video or audio chat. Users send messages at an unpredictable rate, so our system should be able to handle these traffic surges. This is the first example system in this book that considers exactly-once delivery. Messages should not be lost, nor should they be sent more than once.

14.1 Requirements

After some discussion, we determined the following functional requirements:

  • Real-time or eventually-consistent? Consider either ...

Get Acing the System Design Interview now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.