Skip to main content

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

Node Generation​

Like UuidV1, the node identifier is generated from random bytes with the multicast bit set per RFC 4122 §4.5, so it's never mistaken for a real MAC address.

See Also​

Every UUID class shares the same comparison and serialization methods — see Shared Methods for fromString(), equals(), jsonSerialize(), and fromJson().


📌 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.