/Distributed-Id-Generator

Distributed id generator application

Primary LanguageJava

Java distributed Unique ID generator inspired by Twitter snowflake

You can read about Twitter snowflake here.

The IDs are 64-bits in size and are generated with the combination of the following:

  • Epoch timestamp in milliseconds precision - 41 bits. The maximum timestamp that can be represented using 41 bits is 2^41 - 1, or 2199023255551, which comes out to be Wednesday, September 7, 2039 3:47:35.551 PM. That gives us 69 years with respect to a custom epoch..
  • Node ID - 10 bits. This gives us 1024 nodes/machines.
  • Local counter per machine - 12 bits. The counter’s max value would be 4095.

How to use

long id = IdGenerator.getInstance().nextId();