Lyft VO Interview Question: Design a 1:1 Messaging App (API, Data Model, Offline Messaging)

15 Views
No Comments

Design a 1:1 Messaging App

Requirements

Conversations

  • User sees a list of conversations, with the most recently active conversations first.
  • Scrolling down shows additional conversations.
  • Tapping the compose button starts a new conversation.

Conversation

  • User sees a list of messages sorted in order.
  • Scrolling up reveals additional messages.
  • User can insert a message and send it.

Ask from candidate

  • Clear and comprehensive API proposal that meets the product needs.
  • Clear and comprehensive data model proposal that fits the API design, is scalable, and reliable.
  • Clear data flow for both online and offline messaging.

Non-requirements (the following are NOT in scope for this problem)

  • User authentication
  • Group chat (1:1 only)
  • Read receipts
  • Typing indicators
  • Contact is online indicators
  • Attachments
  • Contact management. (You can pull contacts from the device or manually enter in a phone number.)
  • Name entry. (We can assume that is pulled from the device.)

This Lyft VO question is a system design prompt for a 1:1 messaging app. The candidate is expected to propose the API surface for conversation lists and message threads, design a scalable and reliable data model for conversations and messages, and explain the end-to-end data flow for online and offline messaging. A strong solution typically covers reverse-chronological conversation ordering, cursor-based pagination for message history, message delivery and persistence, and sync behavior when the user reconnects. The scope is intentionally limited: no group chat, read receipts, typing indicators, online presence, attachments, or contact management.

END
 0