I like the uuid v7 approach - being able to reject messages that have aged past the idempotency key retention period is a nice safeguard.