Bulkhead Pattern

/ˈbʌlk.hɛd ˈpæt.ɚn/ · Noun · Development · Origin: 2007

Definitions

  1. Bulkhead Pattern is a software resilience design pattern inspired by the watertight compartments in a ship's hull that prevent a single breach from sinking the entire vessel. In software architecture, the pattern isolates different parts of a system so that a failure in one component does not cascade and bring down everything else. Implementation approaches include dedicating separate thread pools, connection pools, or process pools to different services or features, so that a slow or failing dependency can only exhaust its own allocated resources rather than consuming shared resources needed by other parts of the system. For example, if a payment service and a recommendation service share the same thread pool, a slowdown in recommendations could consume all threads and prevent payment processing. With bulkheads, each service gets its own pool, containing the blast radius. The pattern is commonly used alongside circuit breakers, retries with backoff, and timeouts. Netflix's Hystrix library popularized the bulkhead pattern, and modern service mesh implementations like Istio and Linkerd provide bulkheading as a configurable feature.

    In plain English: Dividing your system into sealed-off sections, like compartments in a ship. If one section floods (fails), the rest of the ship stays afloat.

    Example: "We added bulkheads around the recommendation service — it gets its own thread pool and connection pool, so when it melts down it can't starve the checkout flow."

Related Terms