Cloud-native, event-driven backend for handling conference registrations on Google Cloud Platform.
- Users submit a form via a static frontend (Firebase Hosting)
- The API (Cloud Run, FastAPI):
- validates input
- absorbs duplicate submits using an idempotency key
- uploads files to Cloud Storage
- stores the submission, idempotency record, and outbox job atomically in Firestore
- returns confirmation once the submission is durably accepted
- An outbox publisher (Cloud Run functions) asynchronously publishes pending submission events to Pub/Sub
- one trigger reacts immediately to newly created outbox rows
- a scheduled sweep revisits pending/stale rows until they are sent
- A worker (Cloud Functions / Cloud Run functions) processes submissions asynchronously:
- generates signed URLs
- writes data to Google Sheets
- sends confirmation emails (Resend)
- Firestore tracks submission state:
pending → processing → completed / failed
GCP
- Cloud Run
- Cloud Storage
- Firestore
- Pub/Sub
- Cloud Run functions
External
- Google Sheets API
- Resend API
- Event-driven architecture (Pub/Sub)
- Asynchronous processing via worker
- API-level idempotency for submission ingestion
- Reliable asynchronous delivery via Firestore outbox
- Secure file access with signed URLs
- Structured logging with request tracing
- Infrastructure managed with Terraform
/apiFastAPI service (Cloud Run)/workerSubmission processor (Cloud Run functions)/outboxOutbox publisher and sweep handlers (Cloud Run functions)/frontSvelte frontend/infraTerraform code/docsArchitecture diagram
Bruno Ancona - Software Engineering @ Universidad Anáhuac Mayab