jargon

Comparison

BulkheadvsShuffle sharding

Bulkhead

you give each downstream its own pool of connections so one slow dependency cannot consume every thread you have.

Partitioning resources so that exhaustion in one compartment cannot sink the whole service. In practice: separate connection pools, thread pools or instances per dependency or per tenant. It converts a total outage into a partial one, which is the entire goal of resilience engineering.

Full entry →

Shuffle sharding

each customer is assigned a random pair of workers rather than one, so two customers rarely share both and one bad tenant cannot take out everyone.

Assigning each tenant a random subset of workers, so that any two tenants overlap only partially. With modest numbers it makes the probability of two given tenants sharing an entire subset very small, which means a tenant that poisons its workers damages only a tiny fraction of the others. It is one of the highest-leverage ideas in multi-tenant reliability and it costs essentially nothing but assignment logic.

Full entry →

Related comparisons