The Challenge
What Quick Was Facing
Quick allows employees to book desks, meeting rooms, and facilities across hybrid office campuses. The booking engine had to handle simultaneous reservation attempts for the same resource — a classic distributed systems problem — while appearing instant to users. Early implementations using database row locks caused deadlocks under concurrent load and delivered a sluggish user experience.
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 booking flow used an event-sourced state machine: reservation requests were appended to an immutable event log, and a projection worker maintained current availability state in Redis for instant reads. Conflict resolution was deterministic and verifiable from the event log. The backend was a set of Go microservices deployed on ECS Fargate, with auto-scaling triggered by SQS queue depth.

Results
