Bancos de dados distribuídos e arquiteturas de microsserviços exigem chaves primárias que possam ser geradas de forma independente em servidores remotos sem gargalos centrais. O padrão mundial para isso é o UUID (Universally Unique Identifier).
1. Estrutura do UUID de 128 Bits
Padronizado pela RFC 9562, um UUID é composto por 16 octetos (128 bits) formatados como 32 dígitos hexadecimais em cinco grupos separados por hífen:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx2. Matemática de Colisão e Segurança
Com 122 bits de pura aleatoriedade no UUID v4 (2^122 ≈ 5,3 × 10^36 IDs possíveis), seria necessário gerar 1 bilhão de UUIDs por segundo durante 85 anos consecutivos para atingir 50% de chance de colisão.
3. UUID v4 (Aleatório) vs UUID v7 (Ordenado no Tempo)
Enquanto o UUID v4 é puramente aleatório, o padrão UUID v7 insere um timestamp Unix de 48 milissegundos nos bits mais significativos, seguido por 74 bits de aleatoriedade, garantindo ordenação cronológica nativa.
4. Indexação de Banco de Dados e Fragmentação de B-Tree
Inserir UUIDs v4 aleatórios em índices B-Tree causa divisões frequentes de páginas e perda de cache. O UUID v7 insere dados sequencialmente no final do índice, permitindo até 10x mais velocidade de gravação no PostgreSQL e MySQL.