New UUID formats have been approved
ietf.org
ietf.org
The linked document is version 01 of the draft, that draft went up to version 04 before being replaced by draft-ietf-uuidrev-rfc4122bis (https://datatracker.ietf.org/doc/draft-ietf-uuidrev-rfc4122b...), which then went up to version 14 before finally being approved as RFC 9562.
@dang, could you please update the link to this?
Lexicographically-sortable and universally-unique are the two desirable properties. Indexable would have saved mongo’s fate, if added up-front.
The funny thing is, no one was stopping us from using cuid or blid. I use ulids all the time for primary keys, and the query properties are simply exactly as advertised.
Annoying for monotonic to even be optional.
But, I’ve now been in the industry long enough that people have given me the same business requirements for intrawebs that they now use to talk about the cloud.
The idea of a UUID was always to sync pieces of data generated on nodes that might be across the street, or in Munich or Tokyo-023. They don’t have the same synchronous atomic clock.
Same problem, but we have new bandwidth, new compute, new thinkers, and new yellers.
The key is that latency has become low enough for real-time applications to always be on your mind.
Example: artificial neural networks have been around since the 60’s. You couldn’t get paid to work on them until GPUs gave you the compute, and cryptocurrency flooded the market with it. Same thing with fiber and always connected UI lifestyles.
1: https://stackoverflow.com/questions/62664761/probability-of-...
And yet, implemented across an incredible number of systems! Is it cargo culting? Was it "good enough"? Why do you think these "basically useless" mechanisms are/were so widely adopted and used?
I still think they were quite naive. I mean, using MAC addresses in the UUID? Not great for privacy.
That’s…not how it works. You’ve literally just taken “UUID6” and made a bunch of incorrect assumptions.
Now some UUID versions do supersede others, for example UUIDv7 is pretty much just a better UUIDv1. But UUIDv4, for example, has not been superseded and remains a good choice for some uses.
> The format for the 16-octet, 128-bit UUIDv6 is shown in Figure 2
Figure 2 is a uuidv7
> UUIDv8 SHOULD only be utilized if an implementation cannot utilize UUIDv1, UUIDv6, or UUIDv8
Probably meant this say or uuidv7
Hopefully this has been fixed...
Did they mean UUIDv7 for the last one?
Take care.