INSERT INTO registrations (to reserve spot for the registration) Generate unique key for payment that is included in all subsequent communication from browser Collect information for registration Check that payment with unique key hasn't been entered Get credit authorization UPDATE registration record with collected information including a finalized flag INSERT INTO payments (information from credit processor with transaction code, unqiue key from previous step, etc)