Isolation

Isolation is a design principle that aims to improve the [resilience] of IT systems, especially [distributed] ones.

The idea is, if you have a failure in one part of a system, you want to reduce the blast radius by isolating the failure so it does not cascade into other parts.

There are many mechanisms for isolation, and they can be applied at different levels of the system, such as the network, the runtime environment, or the communication patterns. For example, [firewalls] can be used to prevent unauthorized access to a network, and [virtual machines] or [containers] can be used to ensure that one service does not consume all the resources of the host machine. [Inter-process communication] patterns such as [message queues] build isolation into the communication patterns, while patterns such as [circuit breakers] can be used to improve failure isolation between more tightly coupled services.

See also [redundancy], which is a complementary design principle.