Submit an issue View all issues Source
MIR-864

Implement short entity IDs (RFD 69)

Done public
phinze phinze Opened Mar 23, 2026 Updated Mar 30, 2026

Implement db/short-id as a first-class entity attribute per RFD 69 (PR #113).

Scope

  • Short-id allocation on entity create — Take last 3 chars of Base58 portion of db/id, check global uniqueness, grow by 1 char on collision. Random Base58 fallback for entities without high-entropy IDs (e.g. http_route).
  • Global uniqueness constraintdb/id, db/name, and db/short-id share a single uniqueness namespace. No value can appear across more than one entity.
  • Extend db/ref resolution — Resolve refs by checking db/iddb/namedb/short-id. Reference storage always uses full db/id.
  • Display helpersBriefId(entity) (shortest: short-id → name → id) and FriendlyId(entity) (most readable: name → short-id → id).
  • CLI output updates — Default table output uses short-ids. --verbose / -v shows full db/id.
  • Boot-time migration — Backfill db/short-id for existing entities in batched etcd transactions (50-100 per txn). Non-blocking, no-op on subsequent boots.

Out of scope (follow-on)

  • Auto-generated db/name for unnamed entities (fun names like "keen-finch")
  • Converting legacy ID formats to Base58

References