Comment by AndreyK1984

1 day ago

Why not to have timestamp-uuid instead ?

How confident are you that your machines clocks are in perfect sync? What about the risk of clock drift + correction, or hardware issues?

  • Not GP, but: not confident. How confident would I be to avoid a (slightly lower entropy) UUID collision while also avoiding a clock desync landing on the exact same logged millisecond? Very, which is how confident I was about not encountering an UUID collision before this thread, so very++ I guess.

  • I get why sync of mutiple machines matters for ordering and causality, but why is it a problem for uniqueness?

    • I just read UUIDv7, something I wasn't familiar with until now. That does address everything I had in mind yes. I assumed timestamp-uuid meant purely based on the timestamp precision, in which case you can get conflicts if you don't have a reliable clock across your system.

      But UUIDv7 looks pretty awesome:

      > What is a Version 7 UUID made from?

      > unix_ts_ms: 019e0c7bfe93

      > ver: 7

      > rand_a: 0b6

      > var: b

      > rand_b: 55a99e023294673

      So please ignore my previous comment :)