[[Distributed Systems]] need to use Distributed _Data Structures_ It is often necessary to merge these structures together, an operation we will refer to as `combine`. `combine` must have 3 properties ``` combine: a -> a -> a is associative is idempotent is commutative ``` Any data structure with a `combine` operation which satisfies those 3 properties is given a special name, a Semilattice. This naming comes from the study of [[Algebraic Structures]] in Abstract Algebra ## Talk link [https://aesakamar.github.io/DistributedDataStructuresAlgebraically/#FinallySomeAlgebra](https://aesakamar.github.io/DistributedDataStructuresAlgebraically/#FinallySomeAlgebra) <iframe title="Distributed data structures, algebraically" src="https://www.youtube.com/embed/rOO2gtkoZ3M?feature=oembed" height="113" width="200" allowfullscreen="" allow="fullscreen" style="aspect-ratio: 1.76991 / 1; width: 100%; height: 100%;"></iframe>