Blog Infos
Author
Published
Topics
Published
Disclaimer
Defining The Task
Gathering Requirements
Functional requirements
Non-functional requirements
Out of scope
High-Level Diagram

High-Level Diagram

Server-side components:
Client-side components:
Deep Dive
Deep Dive: API Service
1. Bi-directional Communication Layer
{
  connection_id: String?
  event_type: "HELLO|MSG_IN|MSG_OUT|MSG_READ|BUY"
  payload: { ... }
}

Job Offers

Job Offers


    Android Engineer

    American Express
    Phoenix, USA
    • Full Time
    apply now

    API Engineer

    American Express
    London
    • Full Time
    apply now

    Mobile Developer Android (m/w/d) Firebase

    REWE digital
    Köln / Cologne
    • Full Time
    apply now
Load more listings

OUR VIDEO RECOMMENDATION

Jobs

2. HTTP-based layer
3. Cloud Messaging Layer
{
  user_id: String
  messages: [
    {
      user_name: String
      text: String
      created_at: String
    },
    ...
  ]
}
API Service Diagram

API Service Diagram

ChatMessageData:
+ id: String
+ user_id: String
+ text: String
+ status: String
+ created_at: Long
+ attachments: String // comma-separated list

Candidate: “You can convert it into a model object.”

ChatMessage
+ id: String
+ userId: String
+ text: String
+ status: ChatMessageStatus
+ createdAt: Date
+ attachments: [Attachments]
Deep Dive: Data Model

Entity-relationship “like” Diagram

ChatInfo:
+ chatId: String
+ lastUsername: String
+ lastUserProfileUrl: Url
+ lastMessageText: String
+ lastMessageTimestamp: Date
Deep Dive: Attachments
Follow-up Questions
Timestamps
Security & Privacy
Conclusion
Looking for more content?

YOU MAY BE INTERESTED IN

YOU MAY BE INTERESTED IN

blog
Below is a simple framework for Mobile System Design interviews. As an example, we…
READ MORE

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.

Menu