A ship metaphor
A ship is divided into watertight bulkheads, so a breach in one compartment does not flood the whole hull. The bulkhead pattern applies the same idea to software resources.
The problem it solves
If all calls share one thread pool or connection pool, a single slow dependency can consume every thread. Unrelated requests then starve, and the whole service stalls even though only one path is sick.
The pattern
Give each dependency or workload its own isolated pool of threads, connections, or instances.
- A slow dependency exhausts only its own pool.
- Other paths keep their resources and stay responsive.
Tuning
Size each pool to its load and importance. Combine bulkheads with circuit breakers: the bulkhead caps the blast radius while the breaker stops the bleeding.
Key idea
Bulkhead isolation gives each workload its own resource pool so one overloaded dependency exhausts only its slice, not the entire service.