Skip to content

docs(suite): the deployment plan assumed a fourth product that was never built - #657

Merged
beyondnetPeru merged 1 commit into
mainfrom
docs/deployment-strategy-three-products
Aug 23, 2026
Merged

docs(suite): the deployment plan assumed a fourth product that was never built#657
beyondnetPeru merged 1 commit into
mainfrom
docs/deployment-strategy-three-products

Conversation

@beyondnetPeru

Copy link
Copy Markdown
Contributor

Follow-up to #655, which superseded ADR-0106. That PR deliberately left this document out: its §5 derives a messaging topology over two projection queues, with exchange bindings and the DLX retirement resting on it, and MMS was load-bearing well beyond §5 — a namespace, a database, a CI pipeline it never had, four risk rows, five sizing rows, and the entire M0–M4 ownership migration.

The suite is three products. This makes the plan say so.

Beyond deleting a product

§5 is redrawn on one producer and one consumer queue. The exchange is Evolith.Contracts.Tenancy:TenantSnapshotIntegrationEvent and the endpoint is tracker.tenant-snapshot — both read from T-059's ConsumerDefinition, not assumed. Broker permission regexes follow: ums writes, tracker reads.

§5.1's consistent-hash rule stays, even though one consumer cannot be split. It would bite silently the day a second consumer group binds, which is exactly when nobody re-reads this section. The text now says why it is kept rather than implying a split that cannot happen today.

§5.5 listed four P0 consumer defects. T-059 closed three — the inbox is wired on the endpoint, the upsert is version-guarded, and the MasterDataDb fallback is moot because that context is gone. The fourth (startup migrations at replicas>1) is still open and says so. All four stay on the page struck through: the reasons are what the next consumer has to satisfy.

§12 was the M0–M4 ladder that migrated tenant authority toward MMS. It becomes a table of what each phase was for versus what actually happened, and keeps the one invariant that outlives it — the Tracker must not become a second tenant master, guarded by the write split and the version guard rather than by a milestone.

§15 keeps its numbering with closed and withdrawn rows struck rather than deleted. A risk register that quietly loses rows cannot be audited.

§14 stops naming masterdata_projection_applied/discarded_total as standard meters. They never had an emitter — not in the Tracker after T-059 and not before it — so the section now says what to add and what the honest signals are meanwhile.

Sizing drops mms-api and one Postgres: ≈1.6 vCPU / ≈3.6 GiB becomes ≈1.4 / ≈3.1.

Verified locally: bilingual parity, bilingual sync, inventories --check, maturity --check.

🤖 Generated with Claude Code

…ver built

The suite is three products, not four. MMS held a namespace, a database, a
CI pipeline it did not have, four risk-register rows, five sizing rows and
the entire M0-M4 ownership migration in this plan — all for a system that
never existed. ADR-0129 records where the tenant boundary really sits;
this makes the deployment plan agree with it.

What changed beyond deleting a product:

  - §5 messaging is redrawn on ONE producer and ONE consumer queue.
    The exchange is Evolith.Contracts.Tenancy:TenantSnapshotIntegrationEvent
    and the endpoint is tracker.tenant-snapshot, both read from T-059's
    ConsumerDefinition rather than assumed.
  - §5.1's consistent-hash rule is KEPT even though one consumer cannot be
    split. It would bite silently the day a second consumer group binds,
    which is exactly when nobody would be reading this section.
  - §5.5 listed four P0 consumer defects. T-059 closed three; the fourth
    (startup migrations at replicas>1) is still open and says so. They stay
    on the page struck through, because the reasons are what the next
    consumer has to satisfy.
  - §12 becomes a table of what the M-phases were migrating toward versus
    what happened instead.
  - §15 keeps its numbering with the closed and withdrawn rows struck. A
    risk register that quietly loses rows cannot be audited.
  - §14 stops naming masterdata_projection_applied/discarded_total as
    standard meters. They never had an emitter, under any name.
  - Sizing drops mms-api and one Postgres: 1.6 vCPU / 3.6 GiB -> 1.4 / 3.1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@beyondnetPeru
beyondnetPeru requested a review from a team as a code owner August 23, 2026 01:22
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions

Copy link
Copy Markdown

📊 Bilingual Coverage Impact

PR Changes

  • Paired EN/ES files modified: 1
  • New EN files needing ES translation: 0

Repository Coverage

Metric Value
Total EN files 527
Total ES files 497
Paired files 0
Coverage 0%

Good: All EN changes have ES counterparts.


Generated by GitHub Actions

@beyondnetPeru
beyondnetPeru merged commit cd3e26c into main Aug 23, 2026
35 checks passed
@beyondnetPeru
beyondnetPeru deleted the docs/deployment-strategy-three-products branch August 23, 2026 01:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant