Skip to content

v4.0.0 — Canary: API v3

Latest

Choose a tag to compare

@SebaScript SebaScript released this 06 Nov 04:05
· 18 commits to main since this release

The canary release: API v3, rolled out next to v2 (3.1.0) and promoted to 100% by the pipeline.

API v3

  • /v3/items: every item carries stockValue, what its stock is worth (quantity × unitPrice), computed on every response and never stored. v1 and v2 never show it, and no request body may set it.
  • /api/... without a version serves v3; every resource is served under /v3.
  • Expand/Contract: v3 changes the API, not the database. It reads the columns v2 reads, so 3.1.0 keeps running on the same schema, untouched, and a rollback loses nothing.

Breaking, hence a major

v3 no longer has the bin location that v3.2.0 added. It lived in a column of its own; a computed field leaves the schema exactly as v2 built it. Removing a field from a published API is incompatible. The pipeline fixes of v3.2.1 and v3.2.2 are all here.

Verified on AWS

Run Canary share measured Canary requests Outcome
deploy 0%, reached with x-canary: true 4.0.0 canary with stockValue, 3.1.0 stable without it
promote, fault=error 8.9% at stage 1 396, all 5xx gate → ABORT → 0%
promote, no fault 10.0% → 48.6% → 97.4% 448 → 2,174 → 4,342 PROMOTE at every stage; stable rebuilt with 4.0.0

A price written through v3 while the canary held 0% was read by 3.1.0 at once, and survived the abort and the promotion.