Bulkhead pattern
Giving each dependency or workload its own limited pool of connections or workers, so one slow part cannot use up everything.
The name comes from the sealed compartments in a ship’s hull. If all outgoing calls share one connection pool, a single slow partner API can hold every connection and take down unrelated features. Separate pools, queues or concurrency limits per dependency keep the damage inside one compartment. The cost is tuning several smaller limits instead of one.
Related terms
- Circuit breaker: A guard around calls to a dependency that stops calling it after repeated failures and fails fast until it recovers.
- Load shedding: Rejecting some requests on purpose when a system is overloaded, so the rest still get served instead of everything grinding to a halt.
