PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/Google

Design high-throughput event subscription system

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's ability to design scalable, fault-tolerant event ingestion and subscription architectures, covering distributed systems, high-throughput messaging, content-based filtering, multi-tenant isolation, API/webhook design, delivery semantics, backpressure, sharding, security, and operational observability.

  • hard
  • Google
  • System Design
  • Software Engineer

Design high-throughput event subscription system

Company: Google

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

Design an event ingestion and subscription system where some clients send events fire-and-forget at up to 1,000,000 events per second. Other clients register subscription rules and webhooks to be notified of matching events. Define the rule expression language, registration APIs, webhook delivery with retries and backoff, ordering and filtering guarantees, backpressure, sharding, and scalability. Address multi-tenant isolation, rate limiting, and security.

Quick Answer: This question evaluates a candidate's ability to design scalable, fault-tolerant event ingestion and subscription architectures, covering distributed systems, high-throughput messaging, content-based filtering, multi-tenant isolation, API/webhook design, delivery semantics, backpressure, sharding, security, and operational observability.

Related Interview Questions

  • Design a Security Monitoring Framework - Google (medium)
  • Design an Online Coding Judge Platform - Google (medium)
  • Design Calendar Event Conflict Handling - Google (medium)
  • Design a pub-sub replay system - Google (hard)
  • How to host many domains on one IP? - Google (medium)
Google logo
Google
Sep 6, 2025, 12:00 AM
Software Engineer
Technical Screen
System Design
3
0

Design an Event Ingestion and Subscription System

Context

You are asked to design a horizontally scalable platform where producers send high-volume events (fire-and-forget, up to 1,000,000 events/second). Consumers register content-based subscription rules and webhooks to receive matching events.

Assume events are JSON objects with a tenant_id and metadata (id, timestamp, type). The system must isolate tenants and provide durable, reliable delivery to subscribers.

Requirements

  1. Event producers
    • Fire-and-forget ingestion of JSON events.
    • Up to 1M events/sec sustained, with burst tolerance.
  2. Subscribers
    • Register subscription rules (content-based filtering) and webhook endpoints to receive matching events.
  3. Define the following:
    • Rule expression language (syntax, supported operators, limits).
    • Registration APIs for subscriptions and webhook config.
    • Webhook delivery protocol, including retries, exponential backoff, idempotency, and error handling.
    • Ordering and filtering guarantees.
    • Backpressure strategy for slow webhooks and overloaded tenants.
    • Sharding and scalability strategy across services and storage.
    • Multi-tenant isolation, rate limiting, and quotas.
    • Security: authentication, authorization, encryption, data isolation, and webhook verification.
  4. Non-functional targets (state clearly in your design):
    • Durability guarantees.
    • Delivery semantics (at-least-once vs exactly-once).
    • Latency SLOs (ingest to delivery).
    • Operational observability and failure handling.

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Google•More Software Engineer•Google Software Engineer•Google 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.