Skip to content

v0.27.0

Choose a tag to compare

@wfukatsu wfukatsu released this 12 Aug 10:34
· 118 commits to main since this release

Design guardrails distilled from the first full-pipeline reference run (an EC-order system exercising CRUD / application-driven 2PC / Saga / TCC / GraphQL end to end on ScalarDB 3.19). Each change encodes a defect class that run actually produced — 4 critical review findings, per-service codegen improvisations, and 3 contract gaps — so the next project is stopped at design time instead of at review.

Added

  • tools/validate-cross-references.py — mechanical cross-artifact lint (schema table counts, hand-written operation totals vs OpenAPI, problem-type slug/status registry consistency, phantom section references, namespace singular/plural variants), wired into design-api / design-scalardb completion. Field-validated: caught 19 genuine leftovers in the reference project, regression-tested.
  • Saga & TCC design checklists in design-scalardb — durable co-committed start, enumeration index, leased recovery worker, pivot definition, EXECUTED-only idempotency guards; sweeper lease + checkpoint catch-up + clock-skew grace for expiring state.
  • Replay-authorization contract items in design-api — replay-branch ownership predicate and principal-scoped idempotency-record table required per keyed operation; transaction-status-unknown declared on every ScalarDB-writing service.
  • Repository Exception Strategy section in design-implementation; mandatory deprecation check in generate-scalardb-code; revision-propagation check (Step 5) in review-synthesizer.

Fixed

  • rules/scalardb-2pc-patterns.md stale for 3.19 (shipped once as SDB-101): validate() is required whenever SERIALIZABLE on 3.19+ (serializable_strategy no longer exists); the application-driven 2PC surface is recorded as @Deprecated on 3.19+ with the obligations a deliberate adoption carries.
  • rules/api-error-standard.md §3.1: unknown-status txId accessor keyed to the pinned release (3.19: getTransactionId()).
  • 2PC code-pattern templates: mandatory deprecation check; version-dependent validate() rule.

Full details: CHANGELOG.md / CHANGELOG_ja.md.

🤖 Generated with Claude Code