PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/Amazon

Design a configuration subscription service

Last updated: Mar 29, 2026

Quick Overview

This question evaluates skills in designing a distributed configuration and subscription service, covering API design, real-time notification semantics (delivery and ordering guarantees), versioning, concurrency and thread-safety, durability and recovery, multi-tenant isolation, security, and scalability concerns.

  • hard
  • Amazon
  • System Design
  • Software Engineer

Design a configuration subscription service

Company: Amazon

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design a configuration service/class that supports setting configuration values and allows applications to subscribe to specific keys or namespaces. When a value changes, subscribers must be notified promptly. Specify the API (set, get, subscribe, unsubscribe), notification semantics (at-least-once vs at-most-once, ordering, debouncing), and how to handle versioning, rollbacks, and partial failures. Address thread safety, concurrency control, persistence/backup, and access control. Discuss how you would scale to thousands of clients (fan-out strategy, caching, long polling vs WebSocket), and analyze time/space complexity of core operations.

Quick Answer: This question evaluates skills in designing a distributed configuration and subscription service, covering API design, real-time notification semantics (delivery and ordering guarantees), versioning, concurrency and thread-safety, durability and recovery, multi-tenant isolation, security, and scalability concerns.

Related Interview Questions

  • Design a Log Collection System - Amazon (medium)
  • Design Human Avoidance for Warehouse Robots - Amazon (medium)
  • Design a High-Availability Load Balancer - Amazon (hard)
  • Design a Ride-Hailing Matching System - Amazon (medium)
  • Design a cloud database write path and recovery - Amazon (hard)
Amazon logo
Amazon
Sep 6, 2025, 12:00 AM
Software Engineer
Onsite
System Design
6
0

System Design: Configuration Service with Subscriptions

Context

Design a multi-tenant configuration service that stores key–value configuration and lets applications subscribe to changes for specific keys or namespaces (prefixes). When a value changes, subscribers must be notified promptly and reliably.

Requirements

  1. API surface
    • set
    • get
    • subscribe
    • unsubscribe
  2. Notification semantics
    • Delivery guarantees (at-least-once vs at-most-once)
    • Ordering guarantees
    • Debouncing/coalescing
  3. Versioning and change management
    • Versioning of keys
    • Rollbacks
    • Handling partial failures
  4. Correctness
    • Thread safety (client library and server)
    • Concurrency control for writes
  5. Durability and recovery
    • Persistence and backups
  6. Security
    • Access control and auditing
  7. Scale and performance
    • Scale to thousands of clients
    • Fan-out strategy
    • Caching strategy
    • Protocol choice: long polling vs WebSocket (and/or SSE)
    • Time/space complexity of core operations

Assume namespaces are path-like prefixes (for example, /env/prod/serviceA/). Specify assumptions as needed.

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Amazon•More Software Engineer•Amazon Software Engineer•Amazon System Design•Software Engineer System Design
PracHub

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

Product

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

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL 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.