Plany miejsc i rezerwacja miejsc
Rezerwacja miejsc to przede wszystkim problem współbieżności przebierany za plan sali.
Miejsce jest wstrzymane, a nie zarezerwowane na zawsze
Gdy kupujący wybiera miejsce, jest ono wstrzymane na 15 minut. Na tyle długo, aby ukończyć płatność, ale na tyle krótko, że porzucony koszyk nie wycofuje miejsca ze sprzedaży na cały wieczór. Jeśli nie zostanie ukończone, wstrzymanie wygasa i miejsce powraca automatycznie.
Dwie osoby, jedno miejsce
Wstrzymanie jest dokonywane atomowo: dokładnie jedna sesja może zająć dane miejsce, a drugie żądanie jest odrzucane, a nie umieszczane w kolejce. To ma znaczenie głównie w najgorszym przypadku — ostatnie miejsca, wszyscy klikają naraz — co jest dokładnie tam, gdzie naiwna implementacja sprzedaje miejsca dwa razy.
Wstrzymania przetrwają wznowienie
Wstrzymania są zapisywane zarówno w bazie danych, jak i w szybkim magazynie w pamięci, więc wznowienie nie uwalnia milcząco wszystkich wstrzymanych miejsc w trakcie sprzedaży.
Mieszanie rezerwacji i wolnych miejsc
Możesz sprzedawać numerowane miejsca i bilety na miejsca wolne dla tego samego zdarzenia. Miejsca wolne nie mają miejsca do wstrzymania, więc ich dostępność liczy się wobec limitu ilości dla typu biletu.
Konsekwencja warta zaplanowania: wstrzymane miejsce to nie sprzedane miejsce. Twoje liczby sprzedaży liczą potwierdzone rezerwacje, więc w intensywnym momencie sprzedaży zobaczysz więcej miejsc wizualnie zablokowanych niż sprzedanych biletów. Ta różnica zmniejsza się wraz z wygasaniem wstrzymań.