1. User Requests Ride Insert into ride_temp Find nearest 2 drivers (via geolocation query) Insert 2 records into ride_requests 2. Driver Receives Request If driver accepts, set ride_requests.status = accepted and others to rejected Create record in rides with data from ride_temp Mark ride_temp.status = confirmed 3. If Both Reject / Timeout Try 2 new drivers not already tried (exclude rejected/accepted) Insert new ride_requests for them Repeat until max attempts If no one accepts, mark ride_temp.status = expired