I like the route Discord and Blizzard have taken with regard to usernames - you can pick whatever you want, and the user entered part changeable and isn't unique, and then they tack on a four (or so) digit numeric identifier to the name that makes it unique (I suspect under the hood, that identifier is related to the actual primary key in some way).
The UI largely allows users to use the user created name, and anywhere the full identifier is used, they make it as seamless as possible and avoid requiring the user to know it.
I agree. I didn't like this system when I first saw it, but it's really growing on me
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.