UUID v8 uitgelegd
UUID v8 is het uitbreidingspunt dat RFC 9562 openlaat. Alleen het versienummer en het variantnummer, samen 6 bits, liggen vast. De overige 122 bits mag de ontwerper zelf invullen.
Je kunt bijvoorbeeld een shardnummer, regiocode of volgnummer vooraan zetten en de rest random maken, zodat sortering en spreiding in één waarde samengaan. De keerzijde is dat je de code die die indeling leest zelf moet schrijven.
Hoe het werkt
- Stel in hoeveel UUID's je nodig hebt, van 1 tot 1000.
- Kies eventueel hoofdletters, koppeltekens en accolades.
- Druk op UUID genereren voor waarden in v8-vorm.
Waarvoor je het gebruikt
- Gedistribueerde databases die shard- of regioinformatie in de identificatie willen opnemen.
- Systemen die al een eigen, sorteerbare identificatiestandaard hebben.
- Prototype-experimenten en interne formaten.
Structuur
Het dertiende hexadecimale teken is het versienummer (8) en het zeventiende het variantnummer. De indeling van de overige 122 bits bepaalt de applicatie volledig zelf.
Waar UUID v8 past
| Optie | Wanneer gebruiken |
|---|---|
v8 | Alleen als je een eigen indeling nodig hebt |
v7 | Is sorteren het doel, dan is dat al opgelost |
v4 | De standaardkeuze als er geen bijzondere eis is |
Overzicht van alle UUID-versies
| Versie | Sorteerbaar | Herkomst van de bits | Waarvoor het past |
|---|---|---|---|
| v1 | Nee | Tijdstempel + MAC-adres | Bestaande systemen die v1 verwachten |
| v3 | Nee | MD5-hash van de naam | Deterministische ID's als MD5 verplicht is |
| v4 | Nee | 122 random bits | Vrijwel elke gewone unieke identificatie |
| v5 | Nee | SHA-1-hash van de naam | Als dezelfde naam altijd dezelfde ID moet geven |
| v6 | Ja | Herschikte tijdstempel | Als je zowel randomheid als sortering wilt |
| v7 | Ja | Unix-tijd in milliseconden | Primaire sleutels en gebeurtenis-ID's |
| v8 | Nee | Zelfgekozen bitindeling | Eigen formaten en experimenten |
Alle zeven versies zijn 128 bits en gebruiken dezelfde notatie 8-4-4-4-12. Het verschil zit alleen in wat elk bit voorstelt.
Codevoorbeelden
javascript
// Je bepaalt de indeling zelf
// bijvoorbeeld 32 bits shard, daarna random
const id = uuidv8();
python
# Python 3.14+
import uuid
id = str(uuid.uuid8(0x1234, 0x5678))
java
// Je hebt een bibliotheek of eigen implementatie nodig
csharp
// .NET 9 gaat tot v7
sql
-- Meestal in de applicatie gemaakt
Veelgestelde vragen
Wanneer gebruik ik v8?
Alleen als v4 of v7 niet volstaan. Bijvoorbeeld wanneer er shardinformatie in de waarde moet of wanneer er al een interne standaard ligt.
Is v8 een standaard?
Ja. RFC 9562 definieert het als officiële versie en het UUID-formaat is gelijk aan dat van de andere versies. Alleen de betekenis van de bits binnenin verschilt per applicatie.
Kunnen andere systemen de waarde lezen?
Elke bibliotheek kan een v8 parseren, want het is een geldige UUID. Voor het interpreteren van de bits is wel code nodig die jouw indeling kent.