Why architecture matters here
Bulkheads fail on wrong sizing (too small = user impact, too large = no protection) and missing fallback. Architecture matters because bulkhead + breaker + fallback compose.
Advertisement
The architecture: every piece explained
The top strip is the pattern. Service with many deps. Bulkhead per dep. Thread pool bounded. Semaphore concurrent limit.
The middle row is behavior. Reject when full. Fallback cached / degraded. Combined with breaker layered. Observability utilization + reject.
The lower rows are ops. Testing chaos + saturation. Metrics. Ops — sizing + drills.
Advertisement
End-to-end flow
End-to-end: service uses dep A + B. A slows down. Bulkhead A saturates; new calls to A rejected with fallback. Bulkhead B unaffected; other requests unaffected. Metrics show A rejects rising; breaker eventually opens.