Software → System Design
Bottleneck
The limiting component or step that constrains throughput, latency, scalability, or delivery speed for the whole system.
Where it fits
A bottleneck appears when one component or step limits the performance of the whole system. It can be a database query, lock, CPU-bound service, queue consumer, network link, deployment process, or human approval step.
Mental model
Traffic flows through a chain. The slowest or least scalable part of the chain sets the effective capacity for everything downstream.
Example
Adding more web servers does not improve throughput if every request waits on the same slow database query. In that case the database query is the bottleneck, not the application server count.
How engineers handle it
Measure first, then reduce the constraint. Common options include caching, indexing, batching, sharding, asynchronous processing, load balancing, backpressure, and eliminating unnecessary shared locks.
Common mistakes
- Optimizing the most visible component instead of the actual limiting one.
- Ignoring bottlenecks that only appear during traffic spikes.
- Fixing throughput while making latency or reliability worse.
Related concepts
Scalability, latency, capacity planning, load balancing, queueing, backpressure, and SPOF.