Bulkhead

Definition

The Bulkhead design pattern isolates critical resources in a system, preventing total failure by ensuring that issues in one area do not affect others.

Use Cases

Frequently Asked Questions

What's the difference between the Bulkhead pattern and a Circuit Breaker?
Bulkhead isolates resources so one part of the system can’t use up all capacity (for example, separate thread pools or separate service deployments). A circuit breaker detects repeated failures/slowdowns to a dependency and temporarily stops calling it to avoid wasting resources. Bulkheads limit the blast radius; circuit breakers stop repeated damage.
When should I use the Bulkhead pattern?
Use bulkheads when you have shared resources that could be exhausted (threads, database connections, CPU, memory, request quotas) and when some functions are more critical than others (payments vs. recommendations). It’s especially useful in microservices, multi-tenant systems, and any system with unpredictable traffic spikes or unreliable downstream dependencies.
How much does the Bulkhead pattern cost?
There’s no direct license cost for the pattern itself, but it can increase infrastructure spend because you may run separate service instances, separate node pools, separate databases, or reserve capacity for critical workloads. Costs depend on how you isolate (extra compute, extra load balancers, extra databases/replicas) and the amount of headroom you keep to ensure critical paths remain available.

Category: software

Difficulty: advanced

Related Terms

See Also