Design a Read-Once Chat System

Read the full interview experience this question came from →

Quick Overview

This question evaluates a candidate's competence in large-scale system design and distributed messaging, including API and data model design, read-once delivery semantics, consistency trade-offs, and operational concerns like scaling, partitioning, and failure handling.

Design a Read-Once Chat System

Company: Grammarly

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

Design a chat messaging system where one sender can select multiple recipients at send time, but the message is not a group chat message. Instead, the system creates separate recipient-specific deliveries. Core requirements: - A sender can send the same message to many recipients at once. - Each recipient should only be able to view the message one time. - After a recipient reads the message, that recipient's copy must be deleted or made permanently unavailable. - One recipient reading a message must not affect another recipient's copy. - The system should support online delivery, offline recipients, retries, and large-scale traffic. Please describe: - APIs - data model - high-level architecture - message fan-out strategy - read-once enforcement - deletion and retention behavior - scaling, load balancing, and partitioning choices - failure handling and consistency tradeoffs

Overview: This question evaluates a candidate's competence in large-scale system design and distributed messaging, including API and data model design, read-once delivery semantics, consistency trade-offs, and operational concerns like scaling, partitioning, and failure handling.

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

|Home/System Design/Grammarly
Grammarly logo
Grammarly
Apr 6, 2026
mediumSoftware EngineerOnsiteSystem Design
33
0

Design a chat messaging system where one sender can select multiple recipients at send time, but the message is not a group chat message. Instead, the system creates separate recipient-specific deliveries.

Core requirements:

  • A sender can send the same message to many recipients at once.
  • Each recipient should only be able to view the message one time.
  • After a recipient reads the message, that recipient's copy must be deleted or made permanently unavailable.
  • One recipient reading a message must not affect another recipient's copy.
  • The system should support online delivery, offline recipients, retries, and large-scale traffic.

Please describe:

  • APIs
  • data model
  • high-level architecture
  • message fan-out strategy
  • read-once enforcement
  • deletion and retention behavior
  • scaling, load balancing, and partitioning choices
  • failure handling and consistency tradeoffs

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...