[#Consistency](Consistency.md)
- すべてのノードが同じUpdateの集合を受け取った場合、受け取る順序にかかわらず、同じ状態になることを保証する
- [[CRDT]]や[[Operational Transformations]]によって実現される
- SECの要求 ( [https://link.springer.com/chapter/10.1007/978-3-642-24550-3_29](https://link.springer.com/chapter/10.1007/978-3-642-24550-3_29) より)
- causal history $C = [c_1, c_2, ... c_n$]
- プロセス$p_i$は、状態$s_i$を持つ
- [[Eventual delivery]]: ある正しいレプリカに配信された更新は、最終的にすべての正しいレプリカに配信される
- $\forall{i, j} : f \in c_i \Rightarrow ♢f \in c_j$
- [[Convergence]]: 同じアップデートを受け取った正しいレプリカは、最終的に同じ状態になる
- $\forall{i, j} : □c_i = c_j \Rightarrow ♢□s_i \equiv s_j$
- [[Termination]]: 全てのメソッドの実行は終了する
- [[Strong Convergence]]: 同じアップデートを受け取った正しいレプリカは、(受け取った順序によらず、ロールバックとかせず)同じ状態になる
- $\forall{i,j} : c_i = c_j \Rightarrow s_i \equiv s_j$
- これがないのが[[Eventual Consistency]]
関連: [[Eventual Consistency]]
参考
- [https://www.baeldung.com/cs/eventual-consistency-vs-strong-eventual-consistency-vs-strong-consistency](https://www.baeldung.com/cs/eventual-consistency-vs-strong-eventual-consistency-vs-strong-consistency)