Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you need an opaque ID like a uuid because, for example, you need the capability to generate non-colliding IDs generated by disparate systems, the best way I've found is to separate these two concerns. Use a UUIDv4 for public purposes and a bigint internally. You don't need to worry about exposing creation time, and you can still manage your data in the home system with all the properties that a total ordering affords.


Now coordinate those sequential ids on a sharded or otherwise clustered database system.


That's the point. Those are only system-unique, not universally. It's a lower-level attribute that is an implementation detail, like for referential integrity in an rdbms. At that point, if you need it, you have atomic increment.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: