PracHub
QuestionsLearningGuidesInterview Prep
|Home/System Design/Anthropic

Design a Resilient Chat System

Last updated: Jul 28, 2026

Quick Overview

Design a resilient direct and group chat system by tracing each message through persistence, fan-out, delivery, and offline replay. Evaluate ordering, idempotency, membership changes, reconnect gaps, partial failures, reconciliation, and the risks of acknowledging data held only in an in-memory broker.

  • medium
  • Anthropic
  • System Design
  • Software Engineer

Design a Resilient Chat System

Company: Anthropic

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Technical Screen

# Design a Resilient Chat System Design a chat system and trace data end to end through its components. Support direct and group conversations, message history, online delivery, offline catch-up, and basic membership changes. Concentrate on concrete component interactions, data flow, and failure cases rather than only naming services. During the discussion, be prepared to evaluate an alternative design that writes messages only to an in-memory broker before acknowledging them. Explain what is attractive about that proposal, where it fails, and how you would revise it. ### Clarifying Questions to Ask - What ordering and durability guarantees do users observe? - Are edits, deletes, attachments, presence, and read receipts required? - How many devices may one user have, and how do they resume independently? - Can group membership change while messages are in flight? - Which regional or storage failures are in scope? ### What a Strong Answer Covers - Explicit send, persist, publish, deliver, and acknowledge steps - Idempotency keys and stable message identifiers - Ordering scope and a cursor for gap-free history reads - Membership authorization at send and read boundaries - Online connection routing and offline replay - Durable handoff before success when durability is promised - Retries, duplicate delivery, backpressure, and poison-event handling - Component failure analysis, reconciliation, and observability - Honest trade-offs around availability, consistency, and user-visible lag ### Follow-up Questions - What happens if persistence succeeds but event publication fails? - How do you prevent a removed member from reading later messages? - How would you handle a hot group with many online recipients? - Which invariants would a background reconciler check?

Quick Answer: Design a resilient direct and group chat system by tracing each message through persistence, fan-out, delivery, and offline replay. Evaluate ordering, idempotency, membership changes, reconnect gaps, partial failures, reconciliation, and the risks of acknowledging data held only in an in-memory broker.

Related Interview Questions

  • Deploy a Large Model to GPU Workers - Anthropic (hard)
  • Design a Concurrent Image Processing Service - Anthropic (hard)
  • Find a Distributed Mode Efficiently - Anthropic (hard)
  • Design a Dynamically Batched Inference API - Anthropic (hard)
|Home/System Design/Anthropic

Design a Resilient Chat System

Anthropic logo
Anthropic
Jul 11, 2026, 12:00 AM
mediumSoftware EngineerTechnical ScreenSystem Design
2
0

Design a Resilient Chat System

Design a chat system and trace data end to end through its components. Support direct and group conversations, message history, online delivery, offline catch-up, and basic membership changes. Concentrate on concrete component interactions, data flow, and failure cases rather than only naming services.

During the discussion, be prepared to evaluate an alternative design that writes messages only to an in-memory broker before acknowledging them. Explain what is attractive about that proposal, where it fails, and how you would revise it.

Clarifying Questions to Ask Guidance

  • What ordering and durability guarantees do users observe?
  • Are edits, deletes, attachments, presence, and read receipts required?
  • How many devices may one user have, and how do they resume independently?
  • Can group membership change while messages are in flight?
  • Which regional or storage failures are in scope?

What a Strong Answer Covers Guidance

  • Explicit send, persist, publish, deliver, and acknowledge steps
  • Idempotency keys and stable message identifiers
  • Ordering scope and a cursor for gap-free history reads
  • Membership authorization at send and read boundaries
  • Online connection routing and offline replay
  • Durable handoff before success when durability is promised
  • Retries, duplicate delivery, backpressure, and poison-event handling
  • Component failure analysis, reconciliation, and observability
  • Honest trade-offs around availability, consistency, and user-visible lag

Follow-up Questions Guidance

  • What happens if persistence succeeds but event publication fails?
  • How do you prevent a removed member from reading later messages?
  • How would you handle a hot group with many online recipients?
  • Which invariants would a background reconciler check?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Anthropic•More Software Engineer•Anthropic Software Engineer•Anthropic System Design•Software Engineer System Design

Your design canvas — auto-saved

PracHub

Master your tech interviews with 9,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.