Mapas de lugares e lugares reservados
Lugares numerados é principalmente um problema de concorrência disfarçado de mapa de sala.
Um lugar é retido, não reservado para sempre
Quando um comprador escolhe um lugar, ele é retido por 15 minutos. Tempo suficiente para terminar a compra e suficientemente curto para que um carrinho abandonado não retire um lugar de venda pela noite. Se não completarem, a retenção expira e o lugar volta automaticamente.
Duas pessoas, um lugar
A retenção é feita de forma atómica: apenas uma sessão pode reclamar um lugar dado, e o segundo pedido é recusado em vez de ser colocado em fila. Isto importa especialmente no pior caso — os últimos lugares, todos a clicar ao mesmo tempo — que é precisamente onde uma implementação ingénua vende duas vezes.
As retenções sobrevivem a um reinício
As retenções são escritas na base de dados bem como no armazenamento rápido na memória, por isso um reinício não liberta silenciosamente todos os lugares retidos no meio de uma venda.
Misturar lugares numerados e entrada geral
Pode vender lugares numerados e bilhetes de entrada geral para o mesmo evento. A entrada geral não tem um lugar para reter, então a sua disponibilidade é contada contra a quantidade própria do tipo de bilhete.
Uma consequência que vale a pena planejar: um lugar retido não é um lugar vendido. Os seus números de vendas contam as encomendas confirmadas, por isso um momento de alta procura mostrará mais lugares visualmente bloqueados do que bilhetes vendidos. A diferença fecha-se à medida que as retenções expiram.