So I split responsibilities:
- privateId
: a sequential bigserial
, used only for db internal references
- id
: a prefixed Nano ID like us_msny03yjrocv
, used everywhere else
The prefix (e.g. us_, ag_, dn_) reveals the entity type. The rest is short, unambiguous, and random.