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.