Ash,

I built one a while back based on twitter’s snowflake algorithm.

Here is a link to a presentation from twitter on it…

https://www.slideshare.net/davegardnerisme/unique-id-generation-in-distributed-systems

We used it as the primary key for the table when in essence there was not a primary key (just needed uniqueness).

Good luck.

Regards,
John Leach

On May 2, 2017, at 6:46 PM, Ash N <742000@gmail.com> wrote:

Hello,

Distributed web application.  Millions of users connecting to the site.

we are receiving about 150,000 events/ sec through Kinesis Stream.
We need to store these events in a phoenix table identified by an ID the primary for the table.

what is the best way to accomplish this?

Option 1
I played with sequences and they seem to work well.  Although with lot of gaps.
will the gaps be filled at all?  if not we will run out of IDs pretty soon.

Option 2
UUIDs.

What is the best way to generate UUID's local or network?

How are folks typically handling this situation?

which route is recommended Sequences or UUIDs?

thanks,
-ash