Study
Is Ticketmaster the Booking Question Big Tech Asks in 2026?
TrueInterview
October 18, 2026 · 12 min read

Mostly no. As of 2026-10-18, TrueInterview's bank holds 25 candidate-reported booking and inventory design questions from 11 big-tech companies, and the most-linked prompt is "Design Hotel Booking System" with 13 write-ups, followed by "Design Inventory Management System" with 8. "Design Ticket Booking System" is linked from 0 write-ups. Our take: prepare the variant family rather than one concert-ticket diagram. Drawing on published design guidance rather than reported follow-ups, we expect interviewers to probe any answer that treats a Redis lock with a TTL as the owner of the unit.
Disclosure: TrueInterview is an interview-preparation product and publishes this article. Facts about other products come from their public pages on the dates listed under Sources.
Which booking and inventory questions do candidates actually report?
Candidates report a spread of variants: hotel booking, counted inventory, auctions, lockers, car reservation and cart lifecycle. Meta leads with 6 of the 25 questions, then Instacart with 4 and Airbnb, Amazon, Microsoft and ByteDance with 3 each. All 25 were last reported within the 12 months before 2026-10-18, so this is current material, not an archive.

The table below lists the reported prompts and the invariant each one stresses. Write-up links count candidate write-ups that point to a question; they show what candidates reported, not how often a company asks it.
| Question | Company | Round, last reported | Write-up links | Invariant it stresses |
|---|---|---|---|---|
| Design Hotel Booking System | Airbnb (also filed under Amazon, Meta, Microsoft) | Onsite, 2026-06 | 13 | No two bookings overlap a room's date range |
| Design Inventory Management System | Onsite, 2026-09 | 8 | Stock count never goes below zero | |
| Online Auction / eBay | Meta | Onsite, 2026-05 | 4 | One winning bid, ordered correctly |
| Design Amazon Locker | Amazon | Onsite, 2026-08 | 3 | One package per slot until pickup |
| Design a ticket or hotel reservation system | Meta | n/a | 2 | Seat or room held by one guest |
| Realtime Auction Bidding System | ByteDance | Onsite, 2026-05 | n/a | Bid ordering under live load |
| Design a Concurrent Car Reservation Service | Salesforce | Onsite, 2026-01 | n/a | One renter per car per time window |
| Design Online Product Catalog | Instacart | Onsite, 2026-04 | n/a | Catalog reads stay consistent with stock |
| Design cart management lifecycle service | Uber | Phone screen, 2026-03 | n/a | Cart moves through valid states only |
The invariant column is our reading of each prompt, not a reported fact. Two ticket-titled prompts in the bank are not seat booking at all: Microsoft's "Design a High-Concurrency Incident Ticket Correlation Platform" and Snowflake's "Design an AI-Powered Jira Ticket Automation System" were both reported for the onsite. Read the prompt before you reach for holds and expiry.
Our take: practise one design per invariant type. Date-range inventory, counted stock, competing bids and reserved seats under load each fail in a different way, and a memorised Ticketmaster diagram covers only the last one.
What does the Ticketmaster belief get right?
The belief is right that ticket booking still appears, and that its concurrency lessons transfer. TrueInterview's site lists a medium ByteDance question, "Ticket Booking System Under Flash-Sale Traffic", reported in October 2026 for the onsite. TrueInterview's page tags that question with caching, concurrency, flash-sale, queueing and rate-limiting.
DesignGurus' blog calls the e-ticketing system "a classic interview challenge" because it touches scalability, concurrency and data consistency. The belief still works for you if your loop is at ByteDance, or if a recruiter names flash sales. For a Meta, Airbnb or Microsoft onsite, rehearse hotel booking first, because that is where the reported write-ups concentrate.
Where and at what level do these questions appear?
They are onsite questions read mostly by senior candidates. Candidates reported 21 of the questions in the onsite and 4 in the phone screen, and 20 of the 21 onsite design questions fall in the booking, inventory and ticketing family. By subtype, 22 of the 25 are distributed systems questions.
Levels come from what candidates reported about themselves. Write-ups link these questions 32 times from senior, staff-plus or manager candidates and 8 times from junior, new-grad or intern candidates. Hotel booking splits 11 to 2 and inventory management 7 to 1. Our view: plan for an interviewer who takes the box diagram as given and spends the round on failure cases.
Down-leveling note (our view): in these prompts the level signal sits in design depth. A candidate who stops at locking the seat and expiring the hold shows mid-level scope; we read the senior signal as naming the invariant, the authoritative store and the payment recovery path before being asked.
Myth 1: does a distributed lock solve double booking?
No. A lock serialises access while it is held, but it does not record who owns the unit after it expires or after a process pauses. DesignGurus' blog proposes that "a centralized lock service (e.g. using Redis) ensures only one server can reserve a given seat at a time". Our view is that follow-ups on the hotel and inventory prompts above will probe exactly this answer.
Make the database row the authority. PostgreSQL's documentation says SELECT FOR UPDATE locks the retrieved rows so other transactions cannot lock, modify or delete them until the current transaction ends. The same documentation says that under REPEATABLE READ or SERIALIZABLE, PostgreSQL throws an error if a row to be locked changed since the transaction started. Both behaviours give you a conflict you can detect and report, which a lock that silently expired cannot.
Our take: state the invariant out loud first, for example that a room-night has at most one confirmed booking, then name the row that enforces it. A lock service can sit in front as a contention filter, but your correctness argument should still hold if it disappears.
Myth 2: is a Redis TTL the hold?
A TTL is a timer, not a record of ownership. The Redis EXPIRE command sets a key's expiration time in seconds, and DesignGurus' blog describes the hold as a timer after which "the hold expires and the seat becomes available again". Neither says what happens when the old holder's request is still in flight.
PracHub's ticket booking guide is direct about it: "Do not make Redis expiry notifications the only source of truth for ownership." The same guide notes that expiry notification timing and delivery are not an atomic seat-booking guarantee.
The fix is to give every hold an identity and a version on the authoritative row. The expiry worker then releases a hold only if that same hold still owns the unit, and confirmation succeeds only if the hold and version still match. For hotel booking this applies per night across the date range, which is the main difference from a single-seat ticket.
Myth 3: do idempotency keys and one transaction make payment safe?
They make retries safe, not ownership. An idempotency key stops a duplicate charge, but it cannot decide who owns a room once a hold has lapsed. DesignGurus' blog claims a relational transaction "ensures that payment and seat reservation happen together". PracHub's guide notes that the payment provider and your inventory database are not one ACID transaction, so you need a recovery protocol.
The guide makes three more points worth adopting. PracHub's guide says to keep payment-attempt state separate from ownership, because "A charged payment can need compensation if its old hold no longer owns the seat." PracHub's guide adds that a callback cannot choose the owner from its payment status alone. PracHub's guide also says a transactional outbox can record the intent to notify or compensate together with the local state change and deliver it asynchronously.
On the provider side, Stripe's webhook documentation says handlers should return a 2xx status quickly, before complex logic that might time out. Stripe also frames webhooks as the way to respond to asynchronous events such as a bank confirming a payment. Our take: persist the payment attempt before calling the provider, acknowledge the webhook first, then run the conditional confirmation as a separate step.
Myth 4: does a queue make a flash sale fair?
A queue limits load; it does not assign units. PracHub's guide puts it plainly: "A waiting-room token permits entry to checkout; it does not promise a seat." It adds that FIFO alone is not fair if one person can hold many identities or a reconnect loses a valid position.
DesignGurus' blog names high concurrency with fairness as one of the biggest challenges, recommends CAPTCHAs or request throttling against bots, and cites Ticketmaster's crash when 14 million fans and bots produced 3.5 billion requests in one day for Taylor Swift tickets. Retries make the problem worse: PracHub's guide says immediate client retries on conflicts can multiply load without adding bookings.
Our take: keep admission control for the follow-ups on ByteDance's flash-sale prompt or Meta's auction. Opening with a waiting room on a hotel booking question spends your first ten minutes on a problem the interviewer did not pose. When you do add it, give clients jittered backoff and treat the token as permission to try, never as a hold.
Myth 5: can you cache the inventory count?
You can cache it for browsing, not for granting holds. PracHub's guide says a hold API should not return success based only on cached availability. PostgreSQL's documentation says row-level locks block only writers and lockers of the same row, not reads, so the browse path can stay fast while the hold path goes to the authoritative row.
For counted-stock variants such as Pinterest's inventory management prompt, our recommendation is a conditional decrement: update the count only where the remaining stock covers the requested quantity, and treat no affected rows as a sold-out answer. Amazon Locker is closer to per-slot assignment, so use a conditional claim on the slot row instead. Then add reconciliation: show how you detect a negative balance or an orphaned reservation, and which job repairs it. We would expect counted-stock follow-ups to push on that repair path.
Worked example: the hotel booking race
Take "Design Hotel Booking System", reported at an Airbnb onsite in 2026-06 and linked from 13 write-ups across Airbnb, Meta and Microsoft, 11 of them by senior-or-above candidates. Guest A holds room R for a date range. A's hold expires. Guest B holds R and pays. Then A's delayed payment callback arrives.
The lock-and-TTL answer cannot say who owns R at that moment. The answer that survives runs like this:
- Holds live on the authoritative row (or one row per room-night) with a hold ID and version.
- Expiry releases R only if hold A, at the version it was issued with, still owns it.
- B's hold writes a new hold ID and a higher version, and B's confirmation is a conditional update that checks that hold ID and version.
- Following PracHub's guide, A's callback compares hold identity and version, not only the room ID, finds no match, and is recorded as a paid attempt with no valid booking.
- The refund for A is written to the outbox in the same transaction and delivered asynchronously.
Then run the race in the other order, with A's callback arriving just before expiry, and confirm the expiry worker's conditional release fails cleanly. For multi-night or multi-seat requests, PracHub's guide adds that if any unit conflicts, you roll back the whole inventory transaction.
What changes at senior and staff level?
Our view: at senior and staff level the box diagram is taken as given, and the score comes from how the design stays correct when traffic, servers and clocks change. Staff-plus or manager write-ups link hotel booking, online auction, a ticket or hotel reservation system and Uber's cart lifecycle service, one each. The reservation question's 2 write-ups both come from senior-or-above candidates.
No claim in our data ties a specific follow-up to a booking prompt, so borrow the pattern from other design rounds. TrueInterview's comparison page quotes a candidate's report from a Stripe rate-limiter onsite: "Sliding window at first, then he asked what happens across three app servers and made me redo it with a shared store." The same page quotes the follow-ups "How do you keep it correct under a clock skew?" and "What breaks first at 10× the traffic?" from candidate reports, which apply directly to hold expiry.
Our take: answer the clock question before it is asked. Hold validity should be decided by the database's clock in the conditional update, not by the app server that issued the hold. For the traffic follow-up, we suggest naming the hot row, such as the last rooms on a holiday weekend or the last units of a flash-sale item, and saying what you would measure: conflict rate, hold-to-confirm ratio and refund volume.
How we counted
We counted practice questions in TrueInterview's bank whose titles fall in booking, inventory and ticketing design; across the 25 questions the families are booking, inventory and ticketing (23) and LLM, RAG and AI infrastructure (2), assigned from question titles. These are candidate-reported questions reconstructed for practice, not any company's official list. Level splits use the level each candidate reported, and a write-up link is one write-up pointing to a question, not a separate interview.
FAQ
What booking system design questions come up in big tech interviews?
In TrueInterview's bank the most-linked are hotel booking, inventory management, online auction and Amazon Locker, in that order (see the table above). Ticket booking does appear, for example ByteDance's flash-sale version, but the generic ticket booking prompt trails the variants in linked write-ups. Treat the list as what candidates reported, not as an official question set, and prepare by invariant type so an unfamiliar variant still maps to something you have drawn before.
How do you prevent double booking in a system design interview?
Name the invariant, then make one store enforce it with a conditional write. For a room or seat, the row carries the current hold ID and version, and every state change checks them. A distributed lock can reduce contention in front of that row, but the correctness argument should not depend on it. Expect follow-ups such as an expired hold, a late payment, or two requests that arrive in the opposite order.
How is hotel booking different from ticket booking?
A ticket is one unit at one moment; a hotel booking is a room across a date range. That changes the conflict check from whether one seat is free to whether every night in the range is free, and we would treat a multi-night request as one that succeeds or rolls back as a whole. Hotel prompts also tend to carry search across dates and locations, so separate the browse path, which can use cached availability, from the hold path, which cannot.
Is a Ticketmaster design enough to prepare for an Amazon or Pinterest onsite?
Only partly. Amazon Locker is slot assignment and Pinterest's inventory management prompt sits closer to stock and catalog updates, so we would expect follow-ups on conditional writes, reconciliation after a crash and what happens when stock and reservations disagree. Reuse the hold-and-version idea from ticketing, but practise a counter that can never go negative and a repair job that finds orphaned reservations.
Your practice plan
A three-week plan for someone working full time, about five hours a week:
- Week one, first. Write the one-sentence invariant and the authoritative store for hotel booking, inventory management, online auction and Amazon Locker.
- Week one, then. Design Design Hotel Booking System end to end, then replay the expiry-versus-late-payment race in both orders on your own design.
- Week two, first. Design Design Inventory Management System with a conditional decrement and a reconciliation job, then the Concurrent Car Reservation Service as a time-window variant.
- Week two, then. Do the Realtime Auction Bidding System and add admission control, jittered retries and bid ordering.
- Week three, first. Run the ticket booking practice page under flash-sale load, and keep the cart management lifecycle service as a short state-machine drill for phone screens.
- Week three, last. Prepare spoken answers to the follow-ups on one design: ten times the traffic, several app servers instead of one, and which clock decides hold expiry. TrueInterview says system design rounds there are practised on a whiteboard, and its paid plans start at $29 billed monthly.
Sources
- TrueInterview question bank — booking and inventory design at big-tech companies — counted 2026-10-18
- Real FAANG Interview Questions by Company · TrueInterview — checked 2026-10-18
- Designing an E-Ticketing/Booking System — checked 2026-10-18
- PostgreSQL: Documentation: 18: 13.3. Explicit Locking — checked 2026-10-18
- EXPIRE | Docs — checked 2026-10-18
- Ticket Booking System Design Interview Guide: Seat Holds, Concurrency, Payments, and Fairness | PracHub Knowledge Hub — checked 2026-10-18
- Receive Stripe events in your webhook endpoint | Stripe Documentation — checked 2026-10-18
- Interview prep compared: your application, end to end · TrueInterview — checked 2026-10-18
Last reviewed: 2026-10-18.