You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@eventmesh.apache.org by "qqeasonchen (via GitHub)" <gi...@apache.org> on 2026/09/07 10:06:53 UTC

[I] [Architecture Review] Storage capability coverage and architecture guardrail enforcement (eventmesh)

qqeasonchen opened a new issue, #5342:
URL: https://github.com/apache/eventmesh/issues/5342

   Part of #5296 (Architecture Review).
   
   Q6 ("Storage capability coverage") and Q7 ("Architecture guardrails") from the 2026-09-07 review questions are both governance items that depend on a single foundation: the `eventmesh-architecture-guard` module landed in #5305 (PR #5322 merged) plus the Storage SPI TCK from #5303. This issue tracks the verification of both at the level of "do the guardrails actually catch violations in CI".
   
   ## Context
   
   - #5305 (PR #5322 merged `6e92e2d70`) added the `eventmesh-architecture-guard` module with 9 ArchUnit `*_check` rules and a separate CI workflow `architecture-guard.yml` that runs on PRs.
   - #5303 standardized the Storage SPI capability model and a TCK.
   - Currently the ArchUnit rules in `ArchitectureRules.java` cover `common` (5 rules) and `runtime` (4 rules) but not all plugins (`eventmesh-connector-*`).
   - The TCK is documented but not all storage plugins declare their capabilities and run it.
   
   ## What needs verification
   
   ### Storage capability coverage (Q6)
   
   - [ ] Every storage plugin in `eventmesh-storage-*` (or wherever they live) declares its capability set via the SPI (e.g. `StorageCapabilities.OFFSET_BASED_CURSOR` / `SUBSCRIPTION_WATCH` / `CAS_FENCING`).
   - [ ] Every storage plugin runs the shared TCK in CI.
   - [ ] Unsupported capabilities are reported as a clear error at plugin-load time (not silent failure at runtime).
   - [ ] A capability matrix table exists in `docs/storage-spi.md` listing each plugin and its declared / actually-supported capabilities.
   
   ### Architecture guardrails (Q7)
   
   - [ ] `architecture-guard.yml` CI workflow runs on every PR that touches an `eventmesh-**/src/main/**` path.
   - [ ] The ArchUnit rules in `ArchitectureRules.java` are consistent with their JavaDoc — the doc says "X is forbidden" and the rule actually forbids X.
   - [ ] Any newly introduced boundary violation is caught by CI (verified by an intentional test PR that introduces a violation, then is reverted).
   - [ ] The guard configuration is documented in `docs/architecture-guard.md` (or `CONTRIBUTING.md`) so contributors understand what the rules enforce.
   - [ ] Plugins (`eventmesh-connector-*`) have at least one ArchUnit rule each, e.g. "connectors must not depend on runtime internal packages".
   
   ## Acceptance
   
   - [ ] `docs/storage-spi.md` capability matrix table exists and is accurate.
   - [ ] Every storage plugin runs the TCK in CI; the test reports are linked.
   - [ ] `architecture-guard.yml` runs on every relevant PR and reports a green/red status.
   - [ ] An intentional-violation PR was filed and confirmed to fail CI (then reverted, but the failure proves the rule works).
   - [ ] `docs/architecture-guard.md` exists, explains each rule, and is linked from `CONTRIBUTING.md`.
   
   ## Depends on / Blocks
   
   - Depends on: #5303 (Storage SPI TCK), #5305 (DONE)
   - Blocks: #5296 closure (Q6 + Q7 must be answered)
   


-- 
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: issues-unsubscribe@eventmesh.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@eventmesh.apache.org
For additional commands, e-mail: issues-help@eventmesh.apache.org


Re: [I] [Architecture Review] Storage capability coverage and architecture guardrail enforcement (eventmesh)

Posted by "qqeasonchen (via GitHub)" <gi...@apache.org>.
qqeasonchen closed issue #5342: [Architecture Review] Storage capability coverage and architecture guardrail enforcement
URL: https://github.com/apache/eventmesh/issues/5342


-- 
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: issues-unsubscribe@eventmesh.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@eventmesh.apache.org
For additional commands, e-mail: issues-help@eventmesh.apache.org


Re: [I] [Architecture Review] Storage capability coverage and architecture guardrail enforcement (eventmesh)

Posted by "qqeasonchen (via GitHub)" <gi...@apache.org>.
qqeasonchen commented on issue #5342:
URL: https://github.com/apache/eventmesh/issues/5342#issuecomment-5577849739

   Resolved via PR #5348.
   
   What landed:
   - Q6: docs/storage-spi.md (7-cap x 3-plugin matrix) + verified all 3 storage plugins run MeshStoragePluginTCK in CI.
   - Q7: 2 new ArchUnit rules (ruleStoragePluginsIsolated, ruleStoragePluginsDependOnlyOnApi) + 2 *_check tests + FakeStorageCanary intentional-violation canary (mirrors FakePluginCanary).
   - Docs: docs/architecture-guard.md (12-rule reference) + CONTRIBUTING.md (contributor entry point).
   - build.gradle: pulls in eventmesh-storage-kafka for the canary sampling.
   
   Plugin-load-time validation (Q6 last bullet) is documented as future work: the current design is runtime instanceof + compile-time TCK, not SPI-loader-time reflection.
   
   Note: PR is open, awaiting reviewer + CI. The repo-level startup_failure on Architecture Guard / Build / Code Scanning / License Check is a known platform issue (affects every PR including develop tip) and is not introduced by this change.


-- 
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: issues-unsubscribe@eventmesh.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@eventmesh.apache.org
For additional commands, e-mail: issues-help@eventmesh.apache.org