uid-number-bands
v0.0.9
Published
Unique ID number generator within band ranges.
Downloads
31
Readme
Unique ID number generator within band ranges
Unique identifier (ID) number generator within band ranges, by multiple generators in sequential order. Generated as a node.js module, however could be adapted for other systems.
Goals
- to be unique.
- to be a integer.
- to be represented as a nanosecond.
- to be issued sequentially.
- to be scalable by multiple generators.
Reason
This schema, was developed for Kurunt, the scalable message processing framework, where you have multiple inputs receiving messages for processing that each require a unique ID represented as a sequential integer in nanosecond format.
Examples
1374207372000000001
1374207372000000002
1374207372000000003
...
Usage
var uidNumberBands = require('uid-number-bands');
var BAND = 0;
var BANDS = 100;
uidNumberBands.init(BAND, BANDS, function() {
var id = uidNumberBands.make();
console.log( 'id: ' + id );
var idNormalized = uidNumberBands.normalize(id);
console.log( 'idNormalized: ' + idNormalized );
});
Limitations
- A maximum of 1 billion IDs can be issued per second with a 64 bit system.
- This ID schema will exceed the nanoseconds 19 chars when unixtime exceeds 9999999999 on Sat, 20 Nov, 2286 17:46:39 GMT.
- Because nanoseconds exceeds ECMA (javascripts) largest number, returned as string representing nanosecond integer.
License
Apache 2.0