Four guarantees, three schemes Four guarantees, three schemes name which guarantee the product pays for, never bundle all four by default guarantee oracle, central batch persist hwm, fence failover UUID random no coordination at all shard-prefixed A-*, B-* disjoint unique IDs never twice yes yes yes no gaps 1,2,3 with no skip yes, one decider no no allocation order IDs leave in order yes no per-shard only real-time order later issue, bigger ID with fence no no uniqueness shards freely, ordering needs coordination: two nodes on disjoint ranges stay unique, yet A-2 may predate B-1 in real time crash mid-batch: IDs 4,5 skipped, nothing repeats — gaps allowed, duplicates never failover without fencing re-issues: the standby needs a fresh epoch before serving legend: green = holds, rose = does not hold, yellow = holds with a condition read the column your product needs, pay only for that column