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