Reviewed by Aditya Kumar · Last reviewed 2026-03-25
**Section 1 — The Context (The 'Why')** Scaling a data pipeline under rapidly growing volumes exposes fundamental limits: single-partition bottlenecks, consumer lag that compounds exponentially, and backpressure cascades that can stall entire systems. A naive design—monolithic...
This medium-level System Design/Architecture question appears frequently in data engineering interviews at companies like Swiggy. While less common, it tests deeper understanding that distinguishes strong candidates. Mastering the underlying concepts (partition, snowflake, spark) will help you answer variations of this question confidently.
Break this problem into components. Identify the core trade-offs involved, then walk the interviewer through your reasoning step by step. Demonstrate awareness of edge cases and production considerations - this is what separates good answers from great ones. The expert answer includes a code example that demonstrates the implementation pattern.
Section 1 — The Context (The 'Why')
Scaling a data pipeline under rapidly growing volumes exposes fundamental limits: single-partition bottlenecks, consumer lag that compounds exponentially, and backpressure cascades that can stall entire systems. A naive design—monolithic consumers, unbounded queues, or hardcoded parallelism—fails when volume doubles: either the queue overflows, the source gets throttled, or downstream systems drown. At Swiggy-like scale, order event spikes during peak hours can overwhelm pipelines not designed for partition-based horizontal scaling from day one.
Section 2 — The Diagram
[Apps]---->[Partitioned Queue]---->[Flink/Spark]
| | |
v v v
[Scale] [Backpressure] [S3/Delta]
| | |
+--------------+--------------->[Warehouse]
Section 3 — Component Logic
The partitioned queue (Kafka/Kinesis) receives events and distributes them across shards by a business key—e.g., order_id or region—enabling parallel consumers. Partition count determines max parallelism; undersizing causes hot partitions and data skew. Flink/Spark workers consume partitions 1:1 where possible; backpressure handling propagates consumer lag upstream so producers slow rather than overflow. Workers write to S3/Delta with idempotent keys and checkpoint offsets for exactly-once semantics. The warehouse layer (Redshift/Snowflake) serves analytics; partitioning strategies in the lake (by date, region) enable partition pruning and cost control. Data skew mitigation via salting hot keys prevents single tasks from dominating runtime. TTL policies on raw zones reduce storage cost while preserving replayability. When scaling out, add partitions first (Kafka/Kinesis support partition expansion); then add consumers. Monitor consumer lag; if lag grows unbounded, either scale consumers or optimize processing.
Section 4 — The Trade-offs (The 'Senior' part)
Design principles: Always partition by a key that distributes load evenly; avoid partition key that correlates with processing time. Use consumer groups for parallel consumption; never exceed partition count with consumers for the same group. Right-size batch and micro-batch intervals based on latency SLA. Monitor partition lag, throughput per partition, and consumer group rebalance frequency; tune based on P99 latency requirements.
Section 5 — Pro-Tip
Pro-Move: Design for 10x from day one; partition by business keys. Red Flag: Single-node bottlenecks or hardcoded parallelism.
Some links below are affiliate links. If you buy through them we may earn a small commission at no extra cost to you — it helps keep DataEngPrep free.
According to DataEngPrep.tech, this is one of the most frequently asked System Design/Architecture interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.