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. |