17 lines
1.4 KiB
Markdown
17 lines
1.4 KiB
Markdown
# Architecture decision record
|
|
|
|
The confirmed baseline uses a managed container API, a transactional managed relational datastore, a durable event bus, a serverless event worker, and centralized observability. The API publishes an event after a successful write. The worker is idempotent, acknowledges only after durable processing, and routes exhausted retries to a dead-letter topic. Public access is restricted to HTTPS and application identity; deployment identities are separate from runtime identities.
|
|
|
|
## Selected Google Cloud products
|
|
- Cloud Run: stateless HTTPS API and event worker.
|
|
- Cloud SQL for PostgreSQL: transactional relational persistence.
|
|
- Pub/Sub: durable asynchronous events and dead-letter handling.
|
|
- Artifact Registry: container image repository.
|
|
- Secret Manager: runtime secret references (values supplied out of band).
|
|
- Cloud Logging and Cloud Monitoring: logs, metrics, alerting foundations.
|
|
- Cloud Trace: distributed request tracing.
|
|
- IAM and Service Usage: least privilege and API enablement.
|
|
|
|
## Trade-offs
|
|
Cloud Run reduces operational burden and scales to zero, at the cost of cold starts and request/runtime limits. Cloud SQL provides relational transactions but needs sizing, backups, and HA decisions. Pub/Sub provides at-least-once delivery, so consumers must be idempotent. Terraform modules are deliberately small and explicit to keep the reference deployable and reviewable.
|