Gera UUIDs v6 baseados em tempo, uma versão melhorada do UUID v1.
Introdução ao UUID v6
UUID v6 é uma versão melhorada do UUID v1, usando o mesmo timestamp e valor de nó, mas reorganizando a ordem dos campos para colocar o timestamp em ordem big-endian, tornando a ordenação temporal mais natural.
v6 vs v1
UUID v6 resolve a principal desvantagem do v1: no v1, a parte do timestamp é dispersa em várias partes do UUID, fazendo com que a ordenação lexicográfica não siga a ordem temporal. O v6 reorganiza os campos de tempo para manter a ordem cronológica.
Casos de uso
UUID v6 é especialmente adequado para cenários que requerem ordenação temporal, como chaves primárias de banco de dados, IDs de eventos de log, identificadores de eventos em sistemas distribuídos que precisam ser ordenados por tempo de geração, etc.
Estado da implementação
UUID v6 é um formato mais recente de UUID, atualmente em definição no rascunho do IETF, ainda não sendo um padrão formal. No entanto, muitas bibliotecas já começaram a oferecer suporte ao v6, e seus princípios de design são relativamente estáveis.
Características temporais
Os primeiros 48 bits do UUID v6 contêm um timestamp em ordem big-endian, fazendo com que ele seja naturalmente ordenado por tempo quando ordenado lexicograficamente, o que é especialmente útil para índices de banco de dados e consultas ordenadas.
Considerações de segurança
Assim como o UUID v1, o UUID v6 também inclui informações de timestamp e possivelmente identificadores de nó (como endereço MAC). Em aplicações sensíveis à segurança, onde essas informações precisam ser ocultadas, pode ser necessário considerar o uso do UUID v4.