Is your feature request related to a problem? Please describe.
Using random 8-character lowercase identifiers (a-z) is unsafe for our projected scale. This format only yields ~208 billion combinations. Due to the Birthday Paradox, we will practically guarantee database insertion errors and collisions once we reach just a few million users.
Describe the solution you'd like
Migrate to an industry-standard, collision-resistant identifier format, such as:
UUIDv4: For standard, mathematically secure 128-bit random IDs.
ULID / Snowflake IDs: If we also need the IDs to be sortable by timestamp.
Describe alternatives you've considered
NanoIDs (Base62): Expanding the character set to include uppercase letters and numbers, and increasing the length to 12+ characters to keep IDs URL-friendly.
Database Retry Logic: Catching UNIQUE CONSTRAINT errors and regenerating the ID. Rejected because retries will spike as the user base grows, degrading database performance.
Additional context
Collision probabilities for our current 8-character lowercase IDs:
64,000 users: 1% risk of collision.
538,000 users: 50% risk of collision.
2 million users: >99.9% risk of collision.
Is your feature request related to a problem? Please describe.
Using random 8-character lowercase identifiers (a-z) is unsafe for our projected scale. This format only yields ~208 billion combinations. Due to the Birthday Paradox, we will practically guarantee database insertion errors and collisions once we reach just a few million users.
Describe the solution you'd like
Migrate to an industry-standard, collision-resistant identifier format, such as:
UUIDv4: For standard, mathematically secure 128-bit random IDs.
ULID / Snowflake IDs: If we also need the IDs to be sortable by timestamp.
Describe alternatives you've considered
NanoIDs (Base62): Expanding the character set to include uppercase letters and numbers, and increasing the length to 12+ characters to keep IDs URL-friendly.
Database Retry Logic: Catching UNIQUE CONSTRAINT errors and regenerating the ID. Rejected because retries will spike as the user base grows, degrading database performance.
Additional context
Collision probabilities for our current 8-character lowercase IDs:
64,000 users: 1% risk of collision.
538,000 users: 50% risk of collision.
2 million users: >99.9% risk of collision.