Isolation

This concept is related to resilience new tab and elasticity new tab which are two properties of Reactive Systems new tab.

Isolation is a prerequisite for resilience new tab and elasticity new tab and requires asynchronous communication new tab boundaries between services to decouple them in:

  • Time: Allowing concurrency

  • Space: Allowing distribution and mobility—the ability to move services around

When adopting Microservices, it is also essential to eliminate shared mutable state and thereby minimize coordination, contention and coherency cost, as defined in the Universal Scalability Law by embracing a Share-Nothing Architecture.

Resilience new tab — the ability to heal from failure — depends on compartmentalization and containment of failure, and can only be achieved by breaking free from the strong coupling of synchronous communication. Microservices communicating over a process boundary using asynchronous message-passing enable the level of indirection and decoupling necessary to capture and manage failure, orthogonally to the regular workflow, using service supervision.

Isolation also makes it easier to scale each service, as well as allowing them to be monitored, debugged and tested independently—something that is very hard if the services are all tangled up in the big bulky monolith.

Decoupling Time, Decoupling Space and Embracing Failure are three of the Reactive Principles new tab.