Distributed Systems
Links
-
In Search of Five 9s - Calculating Availability of Complex Systems
-
Testing Distributed Systems | Curated list of resources on testing distributed systems
-
Distributed architecture concepts I learned while building a large payments system
-
The Log: What every software engineer should know about real-time data's unifying abstraction
-
Event-driven Data or: How I Learned to Stop Living in the Present and Travel Through Time
-
Microservices are hard — an invaluable guide to microservices
The cloud native maturity model
Consistency Models
(Summary of Strong consistency models)
Concurrent Histories
With several processes, I write to one common storage, that can be spread across multiple nodes.
Light Cones
There is a time slot for the task to write to acknowledge the write. Same for read access.
Linearizability
If a write task was acknowledged, the result is visible for all reading clients.
Sequential Consistency
If something was given to the system in a certain sequence, the visibility will be in the same sequence. Example: posts (A, then B) to a social network are not visible immediately. But if A becomes visible, only after that, B will become visible.
Causal Consistency
Only if operations are dependent from another, they will be given in the correct sequence. For example can read access only be allowed after certain conditions are met.
Serializable Consistency
Is weak because reads and writes can travel to the past and to the future. Is strong because it requires a linearization and certain conditions. The reading history is determined.