Repository navigation
v2.1.0 — multicloud
The multicloud release: the inventory API runs on AWS, talks to its partner API on Google Cloud through an orchestrator, and is observable end to end.
Cross-cloud integration
GET /v2/items/:idadds apartnerblock with a record fetched live from the other cloud (ok,unavailableordisabled; never an error).GET /v2/interop/randomhands one item to the other cloud in a domain-agnostic contract.POST /v2/interop/messagesis this API's step in the flow: appends an item to the message and stores the accumulated JSON in object storage.?itemId=picks the item, so a live change shows up in the next message.- Partner records are cached for 30 s, failures never are, and
DELETE /v2/interop/cacheforces a refresh. - Every route under
/v2also answers under/api/v2. X-Correlation-Idis honoured, generated when missing, returned and logged.
Kubernetes
- Liveness and readiness probes, requests and limits, ConfigMap and Secret.
- Horizontal autoscaling from 2 to 6 replicas on CPU.
- A PodDisruptionBudget and
do-not-disrupt, so node consolidation no longer takes both replicas down at once.
Observability
- Prometheus metrics: request rate, errors and latency by route pattern, cache hits and misses, cross-cloud lookups.
- OpenTelemetry, injected by the cluster rather than bundled, sent through a collector to both AWS X-Ray and Grafana Cloud Tempo.
- Every request log line carries the trace id; every span carries the correlation id.
- A Grafana Cloud dashboard and alert, templated in
observability/.
Deployment
deploy/manifests as templates; filled-in copies stay out of the repository.