10 Comments

Brilliant article! Very interesting to get a a glimpse of what confluence and convergence mean.

Two minor comments that might improve the decipheration of cross-domain consistency:

- Linearizability (single object - real time guarantee) is a better match with Strict serializability (across object - real time). Sequential consistency (single object - logical time) matches with Serializability (across object - logical time).

- Consensus is not necessary for distributed write operations - even for systems tolerating faults under synchrony (see ABD). Rather consensus is necessary to implement operations with Read-modify-write semantics.

Expand full comment

Awesome summary! I've always thought of "eventual consistency" as being more of a description of system behavior rather than a specific function on consistency; somewhat more like the sealing of confluent streams, but not quite. What I usually have in mind is traditional contract law/promises, where various components are making statements about "transactions" which are really just promises of a future state being consistent with what we promised in the past. Hence, not really transactions at all, but more systemic in terms of how people work/shop/deliver real goods.

Expand full comment

Great fleshing out of these concepts! However Lamport's ordering is defined in terms of the messages that are received, so is there circularity in the definition of linearizability? (No pun intended!)

Expand full comment