Se você pensou que o UUID era o fim de identificadores universalmente exclusivos, pense novamente. Aqui está a especificação ULID, com os seguintes aprimoramentos:
- Compatibilidade de 128 bits com o UUID
- 1.21e + 24 ULIDs exclusivos por milissegundo
- Lexicograficamente classificável!
- Codificado Canonicamente como uma cadeia de 26 caracteres, em oposição ao UUID de 36 caracteres
- Usa a base32 de Crockford para melhor eficiência e legibilidade (5 bits por caractere)
- Caso insensível
- Nenhum caractere especial (URL seguro)
- Ordem de classificação monotônica (detecta e manipula corretamente o mesmo milissegundo)
Veja como fica:
ulid () // 01ARZ3NDEKTSV4RRFFQ69G5FAV
E há uma ampla seleção de bibliotecas que implementam o ULID para todas as principais linguagens de programação.