The Challenge
What Quick Was Facing
Quick lets employees at US hybrid offices reserve desks, meeting rooms, and shared facilities. The booking engine had to resolve simultaneous reservation attempts for the same resource — a classic distributed systems problem — while feeling instant to users. Early implementations using pessimistic database row locks deadlocked under concurrent load and produced a sluggish user experience that killed adoption.
The Solution
What We Built
We replaced pessimistic locking with an optimistic concurrency model backed by PostgreSQL advisory locks for the confirmation step only. The flow used an event-sourced state machine: reservation requests appended to an immutable event log, with a projection worker maintaining availability in Redis for instant reads. The backend ran as Go microservices on ECS Fargate with auto-scaling tied to SQS queue depth.

Results
