UUIDv6
UUIDv6 is a proposed standard that reorders UUIDv1's timestamp bits to make the UUID sortable by creation time.
This format keeps the time, clock sequence, and node structure, but rearranges them for better performance in databases and logs.
Generate a UUIDv6
use DomainFlow\Uuid\UuidV6;
$uuid = UuidV6::generate();
echo (string) $uuid;
Validate a UUIDv6
UuidV6::isValid('1e461b98-77e3-6f23-a2c7-f0c3bdf4a2e6');
Inspector Output
use DomainFlow\Uuid\Inspector;
$metadata = Inspector::analyze((string) $uuid)->metadata();
Returns:
[
'timestamp_100ns' => 139856337381430000,
'sortable' => true
]
Use Cases
- Time-ordered primary keys in relational databases
- Systems that require both UUID uniqueness and temporal sorting
- Ideal for log entries, event streams, and audit trails
📌 Note: UUIDv6 is not yet an official RFC, but it's widely adopted in distributed systems that want timestamp sortability without relying on database sequences.