Bulkhead Isolation¶
Partitioning resources (threads, connections, memory) into isolated pools prevents a failure in one component from consuming all resources and bringing down unrelated functionality, containing blast radius.
Tension Addressed¶
Simplicity vs. Resilience (adds resource management overhead for failure isolation)
Recognizable As¶
Separate thread pools per dependency; connection pool limits per service; process isolation; container resource limits; "cell-based" architecture; blast radius diagrams
Canonical Sources¶
Nygard, "Release It!" (2007, 2018); Ship design (original bulkhead concept)
Transfers To¶
Ship Design (original concept), Operating Systems (process isolation), Cloud Architecture (availability zones), Container Orchestration (resource limits)
Named after ship compartments that prevent a single hull breach from sinking the entire vessel. In software, a slow dependency consuming all thread pool threads blocks all requests, even those not using that dependency. Bulkheads ensure that failure in one area doesn't cascade everywhere.