If there is another solution different than millions of sequences that do not block, generate few gaps (and those gaps are small) and never generate collisions then I will happily use it.
You are going to have to lose the not blocking requirement, or at least define what blocking and non-blocking interactions look like.
What does it mean that bid# 123 exists? Can you, by way of example, just create a table of all possible bid numbers and update a null column with a timestamp saying “this bid came into existence at this moment”?
David J.