Closed gernotstarke closed 1 month ago
I must confess, I haven't read the sources yet. But for me isolation in ACID is isolation of (database) transactions. So, we don't talk about ACID here, isn't it?
Right, it is NOT about ACID, but about ISOLATING components from each other, isolating data models from their usage... in general: isolation as a design/architecture principle.
ACID is one example of applied-isolation.
If we're going to add it, we need to do some work on specifying what we mean. (The SEI post is a mushy corporate-speak mess, as per usual for them.)
I would not add it. I do not see a concise definition in the SEI article, and I see a lot of overlap with loose coupling. In the fundamentals of software architecture book, it doesn't show up in the index (although I see they use the term a lot). I see a lot of potential to confuse participants, and I do not see the value this would add.
The principles show lots of overlap anyway... modularization, loose coupling, high cohesion, separation-of-concern... all suffer from overlap.
Several authors and sources discuss the concept of "isolation" in software architecture. Some key references and ideas related to isolation in software architecture:
Other opinions: In or Out?
Yeah, no doubt about that. In embedded systems this is also relevant with regards to freedom from interference. I absolutely see this as relevant in specific ways for several advanced modules, e.g. FLEX, IMPROVE, EMBEDDED. I just doubt that it helps us here as a general principle, especially since the curriculum is already quite packed.
ok - seems we don't get a majority pro, so I set this issue to "wontfix" for now.
it's similar to modularity and separation-of-concerns (SoC), but not completely identical. (e.g. the "I" in ACID).
therefore, let's add it (maybe as amendmend to coupling) so our discussion of principles becomes a little more complete.
Sources: