New UUID v7 in .NET 9

sharmila subbiah
.Net Programming
Published in
2 min readJul 29, 2024
AI Generated logo

.NET 9(preview 7) introduces a new feature for developers: UUID v7. This new UUID version integrates a timestamp into the traditionally random UUID, offering significant benefits for databases and other systems that require sortable unique identifiers.

What is UUID v7?

UUID v7 is a new specification designed to include a timestamp in the UUID, making it sortable by creation time. This is particularly useful for databases where the insertion order is important and can help in performance optimizations.

How UUID v7 Works

UUID v7 incorporates:

  • 48-bit Timestamp: Represents the number of milliseconds since Unix epoch.
  • 12-bit Random Segment: Adds randomness to ensure uniqueness within the same millisecond.
  • 62-bit Random Segment: Ensures overall uniqueness, offering 122 bits of entropy.

This is particularly useful for databases where the insertion order is important and can help in performance optimizations.

Generating UUID v7 in .NET 9

In .NET 9, the Guid.CreateVersion7() method is introduced to generate these new UUIDs.

 Guid uuidV7 = Guid.CreateVersion7(); // uses Datetime.UtcNow

Customizing Timestamps

Developers can also customize the timestamp used in UUID v7. This is useful for creating UUIDs that match specific times, which can be beneficial in testing or other scenarios.

 Guid.CreateVersion7(TimeProvider.System.GetUtcNow);

Conclusion

By integrating a timestamp, UUID v7 facilitates better performance in databases and other systems. The Guid.CreateVersion7() method makes it easy to generate these identifiers, with options for timestamp customization to suit various use cases.

References

For more detailed information, refer to the following resources:

--

--

sharmila subbiah
.Net Programming

With over a decade of experience in the tech industry, I currently hold the position of Senior Software Engineer at Youlend.