Skip to content

callicoder/java-snowflake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

The Snowflake class should be used as a singleton in your application.

Snowflake s = new Snowflake(275)
s.nextId()

Read the blog to understand more: