Design at-least-once notification delivery

Quick Overview

This question evaluates expertise in reliable distributed systems design, including at-least-once delivery semantics, idempotency and deduplication strategies, retry and dead-letter handling, API and message-schema design, ordering and out-of-order handling, and scalability for high-throughput multi-tenant notification platforms.

Design at-least-once notification delivery

Company: Google

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Technical Screen

Design a notification system that guarantees at-least-once delivery. Define producer and consumer interfaces, deduplication keys, retry with exponential backoff, out-of-order handling, and user-facing idempotency to avoid duplicates.

Quick Answer: This question evaluates expertise in reliable distributed systems design, including at-least-once delivery semantics, idempotency and deduplication strategies, retry and dead-letter handling, API and message-schema design, ordering and out-of-order handling, and scalability for high-throughput multi-tenant notification platforms.

|Home/System Design/Google
Google logo
Google
Sep 6, 2025, 12:00 AM
mediumSoftware EngineerTechnical ScreenSystem Design
12
0

System Design: At-Least-Once Notification System

Context

Design a multi-channel notification platform (email, SMS, push, in-app) that guarantees at-least-once delivery. Duplicates are possible, so the system must be idempotent and provide a good user experience without showing duplicates. Assume high throughput (e.g., thousands of notifications per second), multi-tenant services, and retries across transient failures.

Requirements

  1. High-level architecture and flow that provides at-least-once delivery.
  2. Producer interface (API/SDK) and consumer/worker interface (message schema, ack/nack semantics).
  3. Deduplication strategy: keys, storage, TTL, and uniqueness constraints.
  4. Retry policy with exponential backoff and jitter; failure handling and dead-letter queues.
  5. Out-of-order handling across retries and parallelism; ordering guarantees per key.
  6. User-facing idempotency: ensure no duplicate notifications are displayed to users across channels.

Deliverables

  • Define producer API (fields, idempotency, responses) and consumer message interface (fields, ack/nack).
  • Specify deduplication key design and how/where it is stored.
  • Describe retry algorithm (exponential backoff with jitter), limits, and DLQ behavior.
  • Describe how to handle out-of-order events (partitioning keys, sequence numbers, buffering windows).
  • Describe user-facing idempotency for UI and downstream providers (e.g., collapse/replace semantics).
  • Call out assumptions and trade-offs.

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...