Design analytics ingestion at one billion events per day with a separate minute-count serving path and warehouse. Preserve the one-week p99 latency requirement while handling SDK retries, late data, enrichment, and replay-safe aggregates.
Design Product Analytics for Billion-Event Daily Ingestion
Company: Rippling
Role: Software Engineer
Category: System Design
Difficulty: medium
Interview Round: Onsite
Design an in-house product analytics system for mobile and web applications. Provide an SDK and ingestion API, enrich and store events, support fast minute-level count dashboards, and support more complex warehouse queries.
### Requirements
- About one billion events arrive per day; traffic spikes need not be modeled.
- A dashboard can request counts per minute for an event type, such as installs over the last two hours.
- Any such count query covering data from the past week must finish in under500 ms for99% of requests.
- Enrichment can add or update analysis fields, such as reverse-geographic information or context tags.
- A warehouse supports queries such as page-load counts grouped by U.S. state over the last three months.
- Handle out-of-order arrivals and duplicate events.
### Clarifying Questions
Define event-time versus ingestion-time reporting, acceptable freshness, deduplication identity and retention, dimensions available on the fast path, and late-event correction policy. The fast dashboard requirement is minute counts, not arbitrary low-latency warehouse SQL.
### What a Strong Answer Covers
Capacity estimates, durable ingestion, SDK retry behavior, separate raw and serving stores, minute aggregates, enrichment versioning, late-event updates, deduplication, and evidence for the stated latency target.
### Follow-up Questions
- How do you avoid counting an SDK retry twice?
- What happens when a late event changes a minute bucket already shown on a dashboard?
- Why should enrichment failures not necessarily block basic event counts?
Overview: Design analytics ingestion at one billion events per day with a separate minute-count serving path and warehouse. Preserve the one-week p99 latency requirement while handling SDK retries, late data, enrichment, and replay-safe aggregates.
Design Product Analytics for Billion-Event Daily Ingestion
Rippling
Nov 3, 2026
mediumSoftware EngineerOnsiteSystem Design
0
0
Design an in-house product analytics system for mobile and web applications. Provide an SDK and ingestion API, enrich and store events, support fast minute-level count dashboards, and support more complex warehouse queries.
Requirements
About one billion events arrive per day; traffic spikes need not be modeled.
A dashboard can request counts per minute for an event type, such as installs over the last two hours.
Any such count query covering data from the past week must finish in under500 ms for99% of requests.
Enrichment can add or update analysis fields, such as reverse-geographic information or context tags.
A warehouse supports queries such as page-load counts grouped by U.S. state over the last three months.
Handle out-of-order arrivals and duplicate events.
Clarifying Questions Guidance
Define event-time versus ingestion-time reporting, acceptable freshness, deduplication identity and retention, dimensions available on the fast path, and late-event correction policy. The fast dashboard requirement is minute counts, not arbitrary low-latency warehouse SQL.
What a Strong Answer Covers Guidance
Capacity estimates, durable ingestion, SDK retry behavior, separate raw and serving stores, minute aggregates, enrichment versioning, late-event updates, deduplication, and evidence for the stated latency target.
Follow-up Questions Guidance
How do you avoid counting an SDK retry twice?
What happens when a late event changes a minute bucket already shown on a dashboard?
Why should enrichment failures not necessarily block basic event counts?