
Solving the Noisy Neighbor with Sharded Architecture

Multi-tenant SaaS providers and enterprises running shared data pipelines face the ‘noisy neighbor’ problem: a single tenant’s data burst or a failing database instance can degrade performance for all tenants. Legacy monolithic architectures compound this by unifying all processing into one stream, creating a 100% blast radius where any failure stops everything. Resource scaling must account for the worst-case tenant, leading to wasted spend, and maintaining a global SLA becomes nearly impossible when one high-volume tenant lags the system.
The article presents a sharded hub-and-spoke architecture as a solution. The Hub is a lightweight Dataflow job that reads unified source topics, parses tenant IDs or business domains, and fans data out into isolated buffers (Pub/Sub topics). These durable buffers act as shock absorbers, decoupling the source from downstream processing. The Spokes are multiple smaller Dataflow instances deployed by workload tier: high-priority dedicated pipelines for critical tenants, shared tiers for smaller tenants to optimize costs, and domain-specific pipelines to isolate code complexity.
Compared to a monolithic approach, the sharded pattern improves fault tolerance (failures isolated to one spoke), reduces blast radius from 100% to under 5%, allows independent resource scaling per tenant load, and enables updating one domain without affecting others. Additional optimizations include using Dead Letter Queues (DLQ) to route failed records instead of stalling the pipeline, strict connection pooling with low MaximumPoolSize (1-2) per worker to avoid exhausting database connections during autoscaling, and asynchronous I/O via GroupIntoBatches transforms to reduce connection overhead and database-induced latency.


