I laid out a High-Level Design (HLD) showing the flow:
1. A Frontend Client connecting through an Application Load Balancer (ALB).
2. Traffic routed to horizontally scaled Application Servers.
3. Row-level locks in Redis to temporarily hold/lock tickets out of the pool.
4. Database replicas handling the heavy read traffic.
5. A separate Payment Handling Microservice pushing transactions asynchronously into a Message Queue.
6. Consumer Services reading the queue to finalize ticket markings in the DB and unblock the holds from Redis once finalized.