Why this matters
Your service has 200 threads. It calls services A, B, C. Service C hangs. Requests to C accumulate; all 200 threads end up waiting on C. Requests to A and B can't get served because no thread is free — even though A and B are perfectly healthy.
Bulkheads — borrowed from shipbuilding, where watertight compartments prevent one leak from sinking the whole ship — separate resource pools per dependency. Thread pool for A, thread pool for B, thread pool for C. C going bad can saturate its own pool, but A and B keep serving.