Distributed Systems by Marcos Benevides
:ID: d7efb05f-fb8f-438c-b09d-ea91dc24ebc3
Readings from the following books:
- Michael L. Perry’s “The Art of Immutable Architecture”.
Properties of a reliable application
- Idempotence
- Immutability
- Local Independence
- Versioning
Why Immutable Architecture
..if you are in architecture, you are responsible for cutting the Gordian Knot of possible failures and mitigations. This is the fragile process by which we build the systems that run our society.
The Problems with Immutability
- It’s not how machines actually operate, i.e, we need find a way to represent fixed mutable memory
- Modelling mutable actions that need to be solved by our immutable system
The Fallacies of Distributed Computing
- The network is reliable
- Latency is zero
- Bandwidth is infinite
- The network is secure
- Topology doesn’t change
- There is one administrator
- Transport cost is zero
- The network is homogenous
Changing Assumptions
The tools that we use and the patterns that we follow today all evolved from a time during which assumptions of high reliability, zero latency, and topological consistency were not fallacies. (…) When we apply the languages and patterns of the past to the problems of modern distributed systems, it is no wonder that programmers will make incorrect assumptions.
Structural Sharing
A common optimization for immutable data structures that is enabled by immutable data structures.