in reply to Generate a unique ID

I think you have three choices:

  1. Timestamps, if you know that all clocks are synchronized.
  2. Serially incrementing numbers, if you have a known interlocking mechanism.
  3. Pseudo-random numbers, such as UUIDs, which are, after all, designed for just this purpose.   (You can, as I have opined before, prepend a human-readable string to these, without compromising their randomness.)

Consider whether the “unique identifier” would benefit from having some “human readable” content, such as a timestamp would have ... whether the unique id needs to be “unique across systems” ... what your practical timing considerations are.