diff --git a/docs/modules/patterns/pages/isolate-mutations.adoc b/docs/modules/patterns/pages/isolate-mutations.adoc index 01c4706..8e9ae8b 100644 --- a/docs/modules/patterns/pages/isolate-mutations.adoc +++ b/docs/modules/patterns/pages/isolate-mutations.adoc @@ -27,6 +27,6 @@ Bulkheads are most easily installed by having the compartments communicate using Only use mutable state for local computations, within the _consistency boundary_ of the bulkheaded component—a _unit of consistency_ that provides a safe haven for mutations, completely unobservable by the rest of the world. When the component is done with the local processing and ready to tell the world about its results, then it creates an immutable value representing the result—a _fact_— and publishes it to the world. -The bulkheaded components should ideally use single-threaded execution to simplify the programming model and avoid concurrency-related problems such as deadlocks, race conditions, and corrupt data. For example, https://nodejs.org/[Node.js] https://nodejs.org/[{tab}, window="new tab"], https://akka.io/[Akka] https://akka.io/[{tab}, window="new tab"], https://lmax-exchange.github.io/disruptor/[Disruptor] https://lmax-exchange.github.io/disruptor/[{tab}, window="new tab"], or implementation of the https://en.wikipedia.org/wiki/Reactor_pattern[Reactor] https://en.wikipedia.org/wiki/Reactor_pattern[{tab}, window="new tab"] Pattern and its variants offer this functionality. +The bulkheaded components should ideally use single-threaded execution to simplify the programming model and avoid concurrency-related problems such as deadlocks, race conditions, and corrupt data. For example, https://nodejs.org/[Node.js] https://nodejs.org/[{tab}, window="new tab"], https://www.erlang.org/[Erlang/OTP] https://www.erlang.org/[{tab}, window="new tab"], https://akka.io/[Akka] https://akka.io/[{tab}, window="new tab"], https://lmax-exchange.github.io/disruptor/[Disruptor] https://lmax-exchange.github.io/disruptor/[{tab}, window="new tab"], or implementation of the https://en.wikipedia.org/wiki/Reactor_pattern[Reactor] https://en.wikipedia.org/wiki/Reactor_pattern[{tab}, window="new tab"] Pattern and its variants offer this functionality. -In this model, others can rely on stable and immutable values for their reasoning, whereas each component can internally still safely benefit from the advantages of mutability (like the simplicity of coding and algorithmic efficiency), strong consistency (providing https://en.wikipedia.org/wiki/ACID[ACID] https://en.wikipedia.org/wiki/ACID[{tab}, window="new tab"] semantics), and reduced coordination and contention (through the https://mechanical-sympathy.blogspot.com/2011/09/single-writer-principle.html[Single Writer Principle] https://mechanical-sympathy.blogspot.com/2011/09/single-writer-principle.html[{tab}, window="new tab"]). \ No newline at end of file +In this model, others can rely on stable and immutable values for their reasoning, whereas each component can internally still safely benefit from the advantages of mutability (like the simplicity of coding and algorithmic efficiency), strong consistency (providing https://en.wikipedia.org/wiki/ACID[ACID] https://en.wikipedia.org/wiki/ACID[{tab}, window="new tab"] semantics), and reduced coordination and contention (through the https://mechanical-sympathy.blogspot.com/2011/09/single-writer-principle.html[Single Writer Principle] https://mechanical-sympathy.blogspot.com/2011/09/single-writer-principle.html[{tab}, window="new tab"]).