Same capability, both clouds. Toggle the deployment profile to see the Elastic-Serverless vs. High-Scale realization. The Vercel frontend and the event-contract spine are cloud-agnostic.
| Capability | GCP | AWS | Notes |
|---|---|---|---|
| Stateless compute | Cloud RunGKE Autopilot + Cloud Run | Lambda / Fargate / App RunnerECS / EKS on Fargate | serverless containers on GCP ↔ functions (Lambda) on AWS |
| Relational OLTP | Cloud SQL Postgres 15AlloyDB | Aurora Serverless v2Aurora provisioned | same Postgres interface — switching profiles breaks nothing |
| Analytics / warehouse | BigQuery | Redshift / Athena | rating generation only — off the hot path |
| Object storage (+WORM) | Cloud Storage + Bucket Lock | S3 + Object Lock | tamper-proof copies of the audit log + premium ledger |
| Ordered queue (install gate) | Cloud Tasks / Pub/Sub ordering | SQS FIFO | idempotent, per-case ordered (events for the same case always arrive in order) |
| Pub/sub fan-out | Pub/Sub | SNS + SQS / EventBridge | scorecard fan-out |
| LLM / multimodal | Vertex AI (Gemini) | Bedrock (Claude/Nova) / SageMaker | VLM + agent |
| Vector store | Vertex Vector SearchAlloyDB pgvector | OpenSearch ServerlessAurora pgvector | RAG corpus |
| Secrets | Secret Manager | Secrets Manager | least-privilege per service (each service can read only its own secrets) |
| Keyless CI/CD auth | Workload Identity Federation | GitHub OIDC → IAM role | no long-lived keys |
| Blue/green deploy | Cloud Run traffic shift | CodeDeploy / Lambda alias | seconds-level rollback |
| Global edge | HTTPS LB + Cloud CDN (+ serverless NEG) | CloudFront + ALB | compare by capability, not object name |
| IaC | Terraform + GCS (Cloud Storage) state | Terraform + S3/DynamoDB lock (the record of what's deployed, locked so two deploys can't collide) | one codebase; one Terraform setup per cloud |