3 ms·
I vehemently disagree. It is really about state, dispatch is an implementation detail and can be simulated in many languages. The main difference between mono
by thesz 4y ago
I vehemently disagree.
It is really about state, dispatch is an implementation detail and can be simulated in many languages.
The main difference between monoliths and microservices is in coherent and, if possible, atomic changes in state of different subsystems. Monoliths allow use of blocking primitives or atomic transactions in software transactional memory to achieve that, to do so with microservices is much harder.
The very existence of many implementations of database systems is an attestation that many, if not most, software systems require consistent and atomic transactional processing with regard to state.
State is central to all software.
With what dispatch method to achieve coherency in the processing of state changes is an implementation detail.
- twblalock 4y agoThe real difference between monoliths and microservices is decoupling teams to enable them to move independently in their software development lifecycles. I've seen people set up a microservice architecture that was really a distributed monolith because multiple services were reading/writing from the same database table at the same time. I've also seen them use a central locking service as part of that. That just shows that it's possible to carry forward the state management practices of a monolith into microservices. State management is not the differentiator.
- thesz 4y agoThe same is true for monoliths, like Linux kernel. You definitely can decouple teams to enable them to move independently in their software development lifecycles with monoliths too. Our team definitely do that. And in realm of programming langages, the state management is a differentiator. For what it worth, the very difference between Turing machine and lambda calculus is the ability of computer (a human computer at the time) to rewrite some part of state when using rules of Turing machine. Again, for what it worth, when you have arbitrarily modifiable state not all things are possible: https://www.mail-archive.com/haskell-cafe@haskell.org/msg79739.html https://www.mail-archive.com/haskell-cafe@haskell.org/msg797...