Distributed systems need globally unique IDs without coordination. Requirements: -bit IDs, roughly time-ordered (for database indexing), K+ IDs per second per node, no single point of failure.
Options: UUID (random, not sortable), database auto-increment (bottleneck), Twitter Snowflake (time-based, distributed).