What is ULID?
ULID stands for Universally Unique Lexicographically Sortable Identifier
,
they are composed of a timestamp
and a random component called entropy
, which are combined to create a unique identifier.
How?
The timestamp component is a 48-bit integer that represents the number of milliseconds since midnight on January 1, 1970, UTC. The random component is called as entropy is a 80-bit integer that is generated using a cryptographically secure random number generator.
01GXNPWRFH0338V2CSNSV8N3NY
01GXNPWRFH 0338V2CSNSV8N3NY
|----------| |----------------|
Timestamp Entropy
48bits 80bits
Why?
We already have UUIDs Universally Unique Identifiers
, the main drawback of UUID is they are not sortable, bulky and have lesser randomness.
There is a gem https://github.com/abachman/ulid-ruby, which has a very good readme.