, (*1)
Particle
Language: PHP
64bits int Time Based ID Generator
Uncoordinated
For high availability within and across data centers, machines generating ids should not have to coordinate with each other., (*2)
Solution
- PHP (tested on v7.1.8)
- Particle Id (64 bits) is composed of:
- time - 42 bits (millisecond precision w/ a custom epoch)
- configured machine id - 10 bits - up to 1024 machines
- sequence number - 12 bits - up to 4096 random numbers
System Clock Dependency
You should use NTP to keep your system clock accurate., (*3)
How to use it
Generate Particle ID
Change const EPOCH in particle class to today epoch time w/ millisecond (13 digits), (*4)
$machineID = 0; // Machine ID (aka Server ID no.)
Particle::generateParticle($machineID);
Time from Particle ID (w/ millisecond precision)
$particleID = '4611692470816737853';
Particle::timeFromParticle($particleID);