github.com/mustafaturan/monoton/v2 (go): Package monoton is a highly scalable, single/multi node, human-readable, predictable and incremental unique id generator  The monoton package provides sequences based on the monotonic time which represents the absolute elapsed wall-clock time since some arbitrary, fixed point in the past. It isn't affected by changes in the system time-of-day clock.  Initial time value opens space for the time value by subtracting the given value from the time sequence.  The monoton package converts all sequences into Base62 format. And Base62 only uses ASCII alpha-numeric chars to represent data which makes it easy to read, predict the order by a human eye.  The total byte size is fixed to 16 bytes for all sequencers. And at least one byte is reserved to nodes.  The monoton package can be used on single/multiple nodes without the need for machine coordination. It uses configured node identifier to generate ids by attaching the node identifier to the end of the sequences.  The package comes with three pre-configured sequencers and Sequencer interface to allow new sequencers.  The monoton package currently comes with Nanosecond, Millisecond and Second sequencers. And it uses Millisecond sequencer by default. For each sequencer, the byte orders are as following:  The sequencers can be extended for any other time format, sequence format by implementing the monoton/sequncer.Sequencer interface.  Example using Singleton
Keywords: go|golang|golang-library|golang-package|id-generator|ksuid|snowflake|snowflake-alternative|zero-alloc|zero-allocation