Design a Unique ID Generator: Time Ordering, Collisions, and Clock Skew