Skip to content

v0.30.2 — creation events and the contention table

Choose a tag to compare

@wfukatsu wfukatsu released this 28 Aug 00:09
· 83 commits to main since this release

Two gaps the first real run of /architect:design-state-machine (the ec-monolith sample, Order aggregate, seven stages end to end) surfaced in the skill itself.

Added

  • Creation events are modeled. The command that brings the aggregate into being (place, open, register) is an event with a guard and an actor but no from state: a failed guard means no aggregate, not a cancelled one, and the only way it reaches an existing aggregate is a redelivery of the same request — so its whole matrix column is decided by the API's idempotency contract (ignore where the operation replays, never allow). The rule states it, Stage 3 looks the contract up before asking, and the document template carries the [*] row.
  • The contention table. Stage 5 now builds one row per pair of transitions different actors can fire against one aggregate — orchestrator vs. recovery worker, request path vs. sweeper, two clients on one key — naming who wins and what the loser does, resolved from the transaction design first and asked only where it is silent. A pair with no row is a race nobody designed.

No manifest schema change; 0.30.1 manifests validate unchanged.

Full detail: CHANGELOG.md (日本語).