Open bchewy opened 9 months ago
Note: the QMS is an optional feature to add for an event, set by the event creator
The Queue Management Service (QMS) is used to regulate traffic going into the seat reservation service especially for events with high traffic (e.g. Coldplay, Taylor Swift). This reduces the number of conflicts (race conditions) that happens in the seat booking process (e.g. two people trying to get the same seat), and ensures a fair booking experience for users.
My proposed version of the QMS differs slightly from Ticketmaster's implementation (Smart Queue):
Ticketmaster Smart Queue - does not require login, queue number is tagged to the device instead of user account (i.e. a user can queue with multiple devices) Ticketboost QMS - requires the user to be logged in, limit to only one device per user
This reduces the number of clients in queue and would likely be more fair for everyone.
The QMS consists of two main servers
Websocket: Web protocol (HTTP, AMQP etc.) that is well suited for real-time, bidirectional communication
JSON Web Token (JWT): An open standard used to share security information between two parties — a client and a server. Each JWT contains encoded JSON objects, including a set of claims. JWTs are signed using a cryptographic algorithm to ensure that the claims cannot be altered after the token is issued
Process Flow
Base code completed with #20
Reopening for trakcing
Queue Management Service is not implemented #12
Detailed Description; Refer to https://github.com/bchewy/bolabola/issues/12#issuecomment-1938779634