-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Emphasis of optional subfields for v7 #101
Comments
How about the text like this?
I totally agree that the emphasis should be given to the random data because the extra clock precision and monotonic counter are absolutely optional. I'm concerned about removing the bullets because the Monotonicity and Counters section isn't really intuitive, and thus it looks hard for readers to determine what is actually permitted in implementing a UUIDv7 generator. The subfield description should be helpful to clarify that point. |
Tweaked the proposed text to reduce repetition:
|
This version sounds great! I agree with your earlier concerns about removing the bullet points completely. Thanks for revising the text so quickly. |
Crafted a PR. Let's see if everyone is okay with it. Perhaps, I tend to construct unintuitive if logically correct paragraphs. Thank you for your great feedback. |
I have an implementation of v7 UUIDs for Postgres based on the original draft. I stumbled upon the updated draft today and I think the latest draft places too strong an emphasis on the optional subfields in v7 UUIDs (changed in #91).
In the original draft, the implementation was straightforward: 48 bits for a Unix timestamp in milliseconds and 74 bits of randomness.
The updated draft include a more detailed description of the 74 bits of randomness, but in doing so I think it places too much emphasis on the use of timestamps or counters in the optional subfields. This raises the barrier to implementation (I was initially confused and concerned I needed to reimplement or add code to remain conformant) and in my opinion we should steer implementations away from relying on anything other than a CSPRNG in the random bits unless there is a specific need for all the reasons described in #86. Additionally, I think encouraging the use of timestamps or counters in those subfields can lead to incompatible implementations of v7 UUIDs even if they are optional.
Therefore, my suggestion would be either to:
(the subfields are described right after and include pointers to how they should be filled, so I think it is ok to omit the bullet points)
I am not a standards person, so perhaps there is a more elegant and/or IETF-y way to rephrase the section to deemphasize the use of the optional subfields.
The text was updated successfully, but these errors were encountered: