How I Built a Restaurant Waitlist App on Amazon Aurora DSQL That Literally Cannot Double-Book a Table
The author built TableTurn, an affordable restaurant waitlist and table management system using Amazon Aurora DSQL and Vercel. The core technical decision is using Aurora DSQL's serializable distributed transactions to prevent double-booking at the database level. The author notes that 12 million independent restaurants worldwide manage waitlists on paper or WhatsApp, and professional tools like OpenTable cost $300–700/month, which is unaffordable for most. TableTurn solves this for $29/month. The critical requirement is that two hosts must never seat two different parties at the same table simultaneously. Most systems handle this in application code by checking availability before updating, but two requests arriving at the same millisecond can both pass the availability check before either updates the table status, resulting in double booking. Aurora DSQL provides serializable distributed transactions, the strongest isolation level in SQL, which eliminates this race condition. The post includes a code snippet showing the seating transaction using `await sql.begin(async ...`.
Aurora DSQL's serializable transactions eliminate double-booking race conditions at the database level.