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/08/18 06:24:19 UTC

[I] [Architecture Review][P0] Split eventmesh-runtime into engine/bootstrap/http/state/meta (eventmesh)

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

   ## Problem
   
   `eventmesh-runtime` carries too many responsibilities and couples the core delivery path too tightly to infrastructure. A single module currently bundles:
   
   - core delivery logic (`UniRuntime`, `UniIngressService`, `ReliableDispatcher`);
   - HTTP / SSE / WebSocket servers;
   - Nacos cluster metadata;
   - RocksDB offset store;
   - protocol plugin assembly;
   - Connector scheduling;
   - session / agent capabilities.
   
   For example, `EventMeshApplication` directly creates `NacosMetaStore`, `RocksDBOffsetStore`, and the HTTP/WS servers, then assembles the Runtime. `eventmesh-runtime/build.gradle` also depends directly on Netty, RocksDB, Nacos, and concrete protocol implementations.
   
   ## Risks
   
   - The Runtime core cannot be embedded, unit-tested, or swapped easily.
   - Any protocol or infrastructure change can ripple into the core delivery path.
   - The module's claimed "minimal dependency surface" does not match its real dependencies.
   
   ## Proposed direction
   
   Split into:
   
   ```
   eventmesh-runtime-engine      core delivery: UniRuntime / UniIngressService
   eventmesh-runtime-bootstrap   configuration reading + assembly only
   eventmesh-runtime-http        HTTP / SSE / WS servers
   eventmesh-runtime-state-rocksdb
   eventmesh-runtime-meta-nacos
   ```
   
   - `UniRuntime` / `UniIngressService` depend only on interfaces: `OffsetStore`, `MetaStore`, `PushChannel`, `MeshStoragePlugin`.
   - `EventMeshApplication` only reads configuration and wires components; it must not host core business decisions.
   
   ## Acceptance criteria
   
   - [ ] `UniRuntime` / `UniIngressService` have no compile-time dependency on Netty, RocksDB, Nacos, or a concrete protocol plugin.
   - [ ] `eventmesh-runtime-engine` can be embedded in a test without starting an HTTP server or Meta store.
   - [ ] Bootstrap and engine are separate modules; bootstrap has no delivery logic.
   - [ ] Dependency guardrails (see the P2 architecture-check item) pass.
   
   ---
   
   Part of the [Architecture Review](https://github.com/apache/eventmesh/issues/5296).
   


-- 
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][P0] Decouple eventmesh-runtime responsibilities via internal packages (eventmesh)

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

   Closed by PR #5321 (merged as 58a0c09d). The runtime.tcp / runtime.tcp.internal split, 5 new ArchUnit rules, 17 package-info.java files, and dead SPI removal are all in. Verified by 7/7 CI green and local :check on eventmesh-common / eventmesh-runtime / eventmesh-architecture-guard.


-- 
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][P0] Decouple eventmesh-runtime responsibilities via internal packages (eventmesh)

Posted by "qqeasonchen (via GitHub)" <gi...@apache.org>.
qqeasonchen closed issue #5297: [Architecture Review][P0] Decouple eventmesh-runtime responsibilities via internal packages
URL: https://github.com/apache/eventmesh/issues/5297


-- 
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