All confirmation endpoints use idempotency keys to handle network retries gracefully. The confirmation process is designed to be eventually consistent - if notification delivery fails, the background worker will retry automatically without requiring user action.
The queue-based architecture decouples confirmation from notification delivery. This allows the UI to respond immediately while notifications are processed asynchronously. During peak times (e.g., end of month), additional workers spin up automatically to handle increased load.
Notification records are retained for 2 years in hot storage (PostgreSQL) for customer service inquiries. After 2 years, records are archived to S3 Glacier for the remaining 5 years to meet the 7-year financial services regulatory requirement.
Customer attempts to view confirmation for non-existent application ID (e.g., manual URL manipulation).
Customer returns to CM10 screen after application already marked as completed (e.g., browser back button).
SendGrid API returns error (invalid email, mailbox full, hard bounce).
Twilio API returns error (invalid phone number, carrier rejected, number unreachable).
SendGrid or Twilio experiencing outage (500/503 errors).
PostgreSQL connection timeout or transaction deadlock during status update.
Customer's email address in system is malformed or invalid (e.g., typo during signup).
Customer's phone number is invalid or not a mobile number (e.g., landline, international format issue).
Salesforce/HubSpot API unavailable or returns authentication error.
Customer clicks "Download Agreement" but DocuSign envelope or S3 file is unavailable.
✅ CM10 Architecture Complete - Final screen in Customer Mobile Journey
AINA Architecture Documentation • Customer Mobile Journey • CM10 of 10 ✅