qqeasonchen opened a new pull request, #5366:
URL: https://github.com/apache/eventmesh/pull/5366
## What this PR does
Adds `docs/architecture-review/production-ha-plan.md` — the executable plan
that restructures the production-HA acceptance work (#5352 / #5353 / #5354)
into a tracked topology, in the same shape as the closed #5296 review.
### The 10-issue topology
| Phase | Severity | Issues |
|---|---|---|
| 0 — Enforcement (arch-guard) | P0 | #5356 ban poll-all +
`InMemoryMetaStore`, #5357 ban mutable `EventMeshFrame`, #5358 ban raw quota
calls |
| 1 — Wiring | P0 | #5359 `DeliveryTopology`/`MetaStore`/`FencingToken` boot
wiring, #5360 fencing epoch propagation, #5361 `FrameLimits` |
| 2 — Production behavior | P1 | #5362 `QuotaHandle` + A2A op
classification, #5363 Testcontainers cross-instance takeover tests |
| 3 — Chaos + ops | P1 | #5364 chaos + rolling upgrade + admin security |
| 4 — Docs + evidence | P2 | #5365 doc sync + acceptance evidence |
All 10 tracking issues are already opened and attached to parent #5354 as
GitHub sub-issues (along with #5352 and #5353 — 12 children total).
### What the plan document contains
1. **Topology table** — Phase, Severity, dependency graph (`Depends on` /
`Blocks`) for each issue.
2. **Phase breakdown** — per-issue scope, why the severity rating, and the
concrete ArchUnit rule names / class changes.
3. **Acceptance criteria → issue mapping** — all 21 criteria from the three
parent issues' bodies mapped to exactly one owning issue each (A1-A5 from
#5352, B1-B6 from #5353, C1-C10 from #5354).
4. **PR plan** — one PR per issue, with branch names, approximate file
lists, and local verification commands (each Sub-PR is verifiable with a local
`./gradlew` command even during the ongoing Actions platform outage).
5. **Sequencing rationale** — Phase 0 first (cheap guards stop regression),
Phase 1 sequential wiring, Phase 2/3 parallel.
6. **Open risks** — CI outage impact, Testcontainers E2E scope,
`LOCAL_STICKY_PULL` multi-instance semantics documentation.
### Verification
Docs-only PR. The plan references only classes/files that exist at the
current develop tip (`b08e591ac`):
-
`eventmesh-runtime/.../cluster/{DeliveryTopology,PartitionOwnership,MetaStore,InMemoryMetaStore,FencingToken}.java`
— verified present
-
`eventmesh-runtime/.../security/gate/{SecurityGate,QuotaManager,RequestContext}.java`
— verified present, `tryAcquire` has no paired `release` at call sites (the
#5362 gap)
- `eventmesh-common/.../wire/EventMeshFrame.java` — verified present (361
lines), mutable-map exposure confirmed
- `UniRuntime.java` — confirmed: no `MetaStore` field, no `DeliveryTopology`
validation at boot (the #5359 gap)
Cross-link check: every issue number #5356-#5365 in the doc matches an
existing open issue (verified via the GitHub sub-issue list of #5354).
### Relations
- Parent tracking issue: #5354
- Sub-issues created and linked: #5356 #5357 #5358 #5359 #5360 #5361 #5362
#5363 #5364 #5365
- Original scope issues: #5352 #5353
- Predecessor review (closed): #5296, evidence at
`docs/architecture-review/evidence.md`
Co-authored-by: qqeasonchen <[email protected]>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]