Design One-to-One Messaging Across Multiple Devices

Read the full interview experience this question came from →

Quick Overview

Design one-to-one messaging with durable sends, online delivery, mobile push, multi-device synchronization, retries, and stable conversation-history pagination.

Design One-to-One Messaging Across Multiple Devices

Company: Lyft

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

Design a messenger that supports one-to-one conversations. Messages must be stored on the server so users can retrieve their conversation history. ### Part 1 — Message storage and delivery Describe the send path, persistent message model, and delivery to a recipient who is currently online. Explain how an offline recipient is notified through APNs or Google Firebase Cloud Messaging. #### What This Part Should Cover - A durable acceptance point, stable message identity, and retry behavior. - The relationship between online connections, presence information, and mobile push notifications. - The distinction between storing a message, notifying a device, and knowing that a user has read it. ### Part 2 — Multiple devices and history Users can be logged in on several devices at once. Explain how messages synchronize across those devices and how a user pages through older server-stored messages. #### What This Part Should Cover - Device-specific connections and synchronization progress, including reconnects and missed messages. - A stable conversation ordering and cursor-based history pagination during concurrent new sends. - Authorization checks that restrict every delivery and history request to conversation participants. ### What a Strong Answer Covers - A consistent account of message identity and ordering across storage, retries, live delivery, push, and history. - Recovery when connection or notification state is stale, rather than treating presence as proof of delivery. - Explicit assumptions about scale and optional features; group chat and invented latency targets are not required. ### Follow-up Questions - What happens if a message is stored successfully but the sender times out before receiving the response? - How does a device recover a gap if it receives a newer message before an older one?

Overview: Design one-to-one messaging with durable sends, online delivery, mobile push, multi-device synchronization, retries, and stable conversation-history pagination.

Read the full Lyft Software Engineer interview experience this question came from

|Home/System Design/Lyft
Lyft logo
Lyft
Sep 8, 2026
mediumSoftware EngineerOnsiteSystem Design
0
0

Design a messenger that supports one-to-one conversations. Messages must be stored on the server so users can retrieve their conversation history.

Part 1 — Message storage and delivery

Describe the send path, persistent message model, and delivery to a recipient who is currently online. Explain how an offline recipient is notified through APNs or Google Firebase Cloud Messaging.

What This Part Should Cover Guidance

  • A durable acceptance point, stable message identity, and retry behavior.
  • The relationship between online connections, presence information, and mobile push notifications.
  • The distinction between storing a message, notifying a device, and knowing that a user has read it.

Part 2 — Multiple devices and history

Users can be logged in on several devices at once. Explain how messages synchronize across those devices and how a user pages through older server-stored messages.

What This Part Should Cover Guidance

  • Device-specific connections and synchronization progress, including reconnects and missed messages.
  • A stable conversation ordering and cursor-based history pagination during concurrent new sends.
  • Authorization checks that restrict every delivery and history request to conversation participants.

What a Strong Answer Covers Guidance

  • A consistent account of message identity and ordering across storage, retries, live delivery, push, and history.
  • Recovery when connection or notification state is stale, rather than treating presence as proof of delivery.
  • Explicit assumptions about scale and optional features; group chat and invented latency targets are not required.

Follow-up Questions Guidance

  • What happens if a message is stored successfully but the sender times out before receiving the response?
  • How does a device recover a gap if it receives a newer message before an older one?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...