Python · Django · Stripe · Redis

Drive In Style — Luxury Car Booking Platform

Python Django Stripe Redis

The Challenge

Preventing double-bookings in a high-demand luxury car rental marketplace, where two customers requesting the same vehicle in the same window is a real and costly risk.

The Solution

Implemented transaction.atomic() with select_for_update at the database layer, combined with a Redis-based locking mechanism during the 15-minute booking confirmation window, so a vehicle can never be reserved twice simultaneously.

Tech Stack

Django handles the booking and inventory logic, Stripe processes secure payments for reservations, and Redis provides the short-lived distributed lock that closes the race-condition window between "browsing" and "confirmed booking."

System Concurrency Architecture

      graph TD
          Client1[Renter A: Checkout Request] -->|1. Acquire Lock| Redis[(Redis Distributed Lock)]
          Client2[Renter B: Concurrent Request] -->|Blocked| Redis
          Redis -->|2. Lock Granted 15m Window| Django[Django Core Handler]
          Django -->|3. transaction.atomic & select_for_update| Postgres[(PostgreSQL DB Row Lock)]
          Postgres -->|4. Validate Vehicle State| DBCheck{Is Available?}
          DBCheck -->|Yes| Stripe[Stripe Payment Gateway]
          DBCheck -->|No / Race Prevented| Error[Return 409 Conflict]
          Stripe -->|5. Success Webhook| Commit[Commit Transaction & Release Lock]
      

Key Impact

Zero double-bookings recorded in the production environment, with a 99% booking success rate under high-concurrency simulation tests.