Show HN: OrderlyID – typed, time-sortable, 160-bit IDs with checksums

1 piljoong 0 9/17/2025, 6:23:44 PM github.com ↗
I've been working on OrderlyID, a new identifier format for distributed systems.

It's like UUID/ULID/TypeID, but with a few twists:

- Typed: every ID has a human-readable prefix (order_xxx, user_xxx).

- K-sortable: lexicographic order ≈ creation time.

- Structured fields: 160-bit body includes time, tenant, shard, sequence, random.

- Checksums: optional 4-char integrity check to catch copy/paste errors.

- Privacy flag: can bucket timestamps for public-facing IDs.

Format:

<prefix>_<payload>[-<checksum>]

Example:

order_00myngy59c0003000dfk59mg3e36j3rr-9xgg

There's a draft spec with conformance tests:

https://github.com/kpiljoong/orderlyid/blob/main/spec/0001-s...

Go reference implementation and CLI:

https://github.com/kpiljoong/orderlyid

Compared to TypeID, OrderlyID adds larger bit size (160 vs 128), tenant/shard/sequence fields, optional checksum, and a privacy bucket flag.

Status: Draft v0.1 — stable enough for experimentation. Feedback and contributions very welcome.

Repo: https://github.com/kpiljoong/orderlyid

Comments (0)

No comments yet