Most ID libraries solve one problem well:
uniqueness
But in distributed systems, that is often not enough.
Sometimes you also want an identifier to help with:
- ordering
- tracing
- debugging
- understanding where it came from
That is why I built EUID , a Java library for generating sortable, decodable, topology-aware UUID v8-style identifiers .
With v0.2.0 , I made the biggest change to the project so far: I split generation into two strategies instead of forcing one implementation to handle every workload.
Why EUID exists
Traditional UUIDs are great when you want opaque, globally unique values.
But they do not help much when your system also cares about:
time ordering
infrastructure visibility
decoding metadata from an ID
understanding distributed generation behavior
EUID is designed for those cases.
It uses a structured 128-bit layout with:
timestamp
region
shard
node
sequence
So the ID is not just unique — it can also be decoded and understood.
What changed in v0.2.0
The biggest…