Home / Blog / Why Isn't One Seat Sold Twice?
Booking Software

Why Don't Two People Book the Same Seat on a Flight?

Thousands may be looking at the same flight. Software must decide who gets each seat.

Ronnie Mbuqe Author · ExplainItSimply
31 July 2026 16 minute read English

You select seat 12A while someone else may be looking at it too

The seat map looks calm. Behind it, booking software is handling competition, time limits, payment and changing availability.

A green seat does not simply mean “empty forever.” It means “available according to the latest information the system has.”

A seat can be in several states

AvailableNo active rule is currently preventing a new selection.
Temporarily heldA customer is completing the booking and the seat is protected for a short time.
ConfirmedThe seat is attached to a completed reservation.
BlockedThe airline may reserve it for operational, accessibility or crew reasons.
ReleasedA previous hold or reservation ended, making the seat available again.

Two fingers move toward 12A

Person A taps the seat in Johannesburg. Person B taps the same seat somewhere else almost simultaneously.

Both screens were showing information that was true a moment earlier. The database now has to settle the race.

The winner is not decided by whose screen looked faster. It is decided by which valid request the system successfully records first.

How the seat becomes yours

1

The seat map is loaded

The app receives the latest known state of the cabin.

2

You select a seat

The system sends a request asking whether it can be held for your booking.

3

The database checks again

The seat may have changed since the map first appeared, so availability must be confirmed at the moment of action.

4

A temporary hold may be created

The hold protects the seat while passenger details and payment are completed.

5

Payment and booking complete

The seat moves from temporary protection to a confirmed reservation.

?

Why not reserve the seat forever as soon as it is clicked?

People abandon booking pages, close browsers and fail payments. Permanent reservation on the first click would allow unavailable-looking seats to remain trapped by unfinished bookings.

A time-limited hold gives the customer a fair chance to finish while allowing the seat to return if the booking is abandoned.

Concurrency: many actions happening together

Concurrency is what developers call situations where several users or processes act on shared data at nearly the same time.

The system can use database transactions, locking or carefully designed conditional updates so only one request changes the seat from available to held.

Everyone else receives the new truth: the seat is no longer available.

The payment succeeds, but the confirmation screen fails

This is one of the uncomfortable edge cases booking systems must plan for.

The system needs a transaction reference and a reliable booking state so it can determine whether payment succeeded, whether the seat was confirmed and whether a retry would accidentally charge again.

A customer should not have to guess whether they own the seat.

What if the new aircraft has a different seat layout?

An airline may replace the planned aircraft. Row numbers, cabin sections or available seats can change.

Software then has to map passengers to the new layout, preserve preferences where possible and clearly communicate changes.

The seat is part of a living operational system, not only a picture on a booking page.

The same seat may appear on several sales channels

Customers can book through an airline website, mobile app, travel agent or partner system. These channels must ultimately agree about the same inventory.

If each channel kept an isolated copy for too long, one seat could appear available in several places after it had already been sold.

The database transaction

A transaction groups important changes into one controlled operation. Either the valid changes complete together, or the system can roll them back.

This protects the relationship between the passenger, booking, payment and seat.

The seat map is a picture. The transaction is the promise behind it.

People are not booking database rows

They may be choosing a window for a child's first flight, an aisle for comfort or nearby seats for a family.

That is why a small square labelled 12A can carry real importance. Software protects the promise made when the confirmation arrives.

Receive a seat confirmation

Remember the race you never saw. The system checked the latest availability, protected the seat and connected it to one completed booking.
Banking

How Does an ATM Know Your Balance?

Messaging

What Happens After You Press Send?

Navigation

How Did Google Know There Was Traffic?

🤔 The Next Time...

The next time your flight seat becomes confirmed

Other people may have been viewing the same flight while software protected your temporary hold and completed your payment.How many systems had to agree before that one seat officially became yours?