Remix.run Logo
windowshopping 3 days ago

That's actually kinda hard, no?

Say the server has a counter. When you load the page, it's at 57, so it displays that you would be ordering #57. While you're looking at this, someone else loads the page - what number do you show them? If you show 57, then whoever orders first gets it and the other person gets a message "Sorry, not available. Want 58 instead?" but the same thing could then happen to them with #58, too – "Sorry, not available. Want 59 instead?"

So maybe instead you show the 2nd person counter+1, i.e. 58. And you show the 3rd person counter+2, i.e. 59. But what if #59 purchases but 57 and 58 don't? What do you show the NEXT person, 57 or 60?

I'm not saying it's intractable but it merits thought.

inerte 3 days ago | parent | next [-]

The solution is to hide deep into the Terms of Service "Duplicate numbers may occur. You reserve the right to be sued if you complain."

crobertsbmw 3 days ago | parent | prev | next [-]

Maybe just show the last purchased number? Then it’s a race to get your order in if you want the next sequential number.

cloudmanager 3 days ago | parent | prev | next [-]

Exactly why we kept it simple. You find out your number when it ships.

defrost 3 days ago | parent [-]

What guarantee is there against transit hash collisions?

When two rocks are ordered, several rocks arrive, some with no ID numbers, others with IDs that match previously issued rocks?

trehans a day ago | parent | prev [-]

IIRC many websites (e.g. for buying concert tickets) have a lock mechanism where you have X amount of time to make your purchase during which time only a limited number of people can be in the checkout process.

cloudmanager a day ago | parent [-]

We're avoiding any reservation or lock mechanisms entirely. Starting November 1, the site will display 'Most recent fulfillment: Rock #000047' to show systematic progress, but this creates no guarantee for future purchases.

Sequential assignment follows strict order of payment completion only. No race conditions, no held inventory, no time windows. You either complete the transaction and receive the next sequential number, or you don't.

The constraint is designed to eliminate the entire apparatus of purchase optimization, including queue management systems.