Saltar al contenido principal
riqo.ioHerramientas para grandes ideas

UUID: identificadores únicos, versiones y usos

Estructura de UUID, variant y versiones, probabilidad de colisión y criterios para identificadores distribuidos.

Qué es un UUID

Un UUID es un identificador de 128 bits diseñado para generarse sin un asignador central. La forma textual canónica usa 32 dígitos hexadecimales agrupados con guiones, pero el valor esencial sigue siendo una secuencia de 128 bits.

La unicidad no es una propiedad matemática absoluta de cada UUID. Depende del algoritmo y del dominio; el objetivo práctico es hacer las colisiones despreciables o evitarlas mediante la estructura de una versión.

Variant y campo version

Determinados bits identifican el variant y la versión, que definen la familia de layout y cómo se generaron los demás bits. Una cadena puede tener formato válido y no ser la versión admitida por un protocolo.

La validación debe distinguir formato textual, variant, versión y política de aplicación. Poder parsear un UUID no demuestra que sea apropiado para el contrato.

UUID v4 y aleatoriedad

UUID v4 dedica la mayoría de bits a aleatoriedad y reserva los necesarios para versión y variant. Con un generador criptográficamente robusto ofrece un espacio enorme y colisiones extremadamente improbables a escalas habituales.

La probabilidad aumenta con el número de identificadores según el birthday bound, pero un RNG defectuoso o una implementación no conforme suele ser un riesgo más realista.

Versiones temporales y UUID v7

Otras versiones incorporan tiempo, namespace o hash. UUID v7 coloca un timestamp Unix en milisegundos en la zona más significativa y lo combina con bits aleatorios, facilitando orden temporal.

Los ID ordenables por tiempo pueden mejorar la locality de índices, pero exponen información temporal y no sustituyen el orden de negocio. La versión debe elegirse por requisitos.

Bases de datos, API y confianza

Los UUID son útiles como claves públicas porque no necesitan una secuencia global y son menos previsibles que enteros incrementales. A cambio pueden ocupar más en índices, caches y payloads textuales.

Un UUID no es un token de autorización. Conocer un identificador nunca debe conceder acceso por sí solo; autenticación y permisos siguen siendo controles independientes.

Buenas prácticas

Usa tipos UUID o binarios nativos cuando sea posible, normaliza la representación en los límites y valida la versión esperada cuando el contrato lo exija. Evita generadores aleatorios improvisados.

Define si el identificador es estable, público, reutilizable y significativo entre entornos. Elegir un ID forma parte del modelo de datos y merece una política explícita.

Guías relacionadas

UUID v1, v4 y v7: generación, ordenación, colisiones y diseño de ID

Comparación entre versiones UUID y criterios para elegir identificadores aleatorios, temporales u ordenables.