[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Randomizing Strings In A Microservices World

I ran across a kind of fun problem today that I wanted to run past you Gentle Geniuses (tm):

- Imagine an environment in which there may be multiple instances of a given
  microservice written in Python.

- Each of these services needs to produce a string of ten digits guaranteed to be unique
  on a per service instance basis AND to not collide for - oh, let's say - forever :)s

Can anyone suggest a randomization method that might achieve this efficiently?

My first thought was to something like nanonseconds since the epoch plus something
unique about the service instance - like it's IP?  (This is in a K8s cluster) - to
see the randomization and essentially eliminate the string being repeated.

Ideas welcome ..

P.S. I do not want to resort to a number generation service that each instance asks
     for a new number.  The network and service call overhead militates against this
     in my application.