Ensuring an implication stays true (P ⟹ Q) E.g. Marking an order as fulfilled, and then adding it to the list of delivered orders Can be done without coordination, by sending the object before the referenced object 2. Atomic groups of changes (all-or-nothing) Updating an object and data derived from that change E.g. Marking an order as fulfilled and decrementing the item quantity in stock together Can be done without coordination, by sending the updates together 3. Precondition invariants (if … then else, compare-and-set, etc.) Updating an object based on a condition E.g. Only process the order when an item is available, assuming a single item Requires coordination: isolation of the transaction through mutual exclusion Weaker ordering sufficient for AP invariants. Coordination needed for CAP-sensitive invariants.