qqeasonchen opened a new pull request, #5343: URL: https://github.com/apache/eventmesh/pull/5343
Part of #5296 (Architecture Review, "New review questions" 2026-09-07, Q5). Closes #5341. This PR establishes the protocol / SDK boundary explicitly so the modern HTTP + CloudEvents + EventMeshFrame path is the only one downstream code depends on, while legacy TCP, gRPC, and OpenMessaging paths are clearly marked and isolated. ## Changes 1. **New `docs/protocols.md`** - canonical inventory of wire protocols, server-side protocol plugins, and client SDKs, with GA / Beta / Experimental / Legacy tags. Lists the legacy TCP migration path. 2. **`docs/eventmesh-architecture.md` section 9** - new "Protocols and SDKs" section summarizing the boundary policy and linking to protocols.md. The Documentation table now includes a row for protocols.md. 3. **`eventmesh-sdks/eventmesh-sdk-java/build.gradle`** - demote `io.openmessaging:openmessaging-api` from `api` to `implementation`. The OMA types are only used by the legacy TCP client; a modern user who depends only on the CloudEvents client (the documented public surface) no longer sees OMA on their classpath. Inline comment explains the rationale and references #5341 + docs/protocols.md. 4. **New `eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/legacy-README.md`** - short package-level readme for the legacy TCP client explaining the three impls (openmessage / cloudevent / eventmeshmessage), the deprecation status, and the migration path. ## Acceptance check for #5341 - [x] `docs/protocols.md` exists and is linked from `docs/eventmesh-architecture.md` section 9. - [x] The Java SDK's `build.gradle` declares `io.openmessaging:openmessaging-api` as `implementation`, not `api`. - [x] `git grep "import.*MeshMessage\|import io.openmessaging" eventmesh-runtime/src/main/` returns only files under the legacy `runtime/tcp/` and `runtime/transport/http/LegacyHttp*` packages. (Verified: no import in the modern ingress / delivery / push paths; the Javadoc-only mentions in `Delivery.java` / `PushChannel.java` / `UniIngressService.java` describe boundary support but do not import the legacy types.) - [ ] `eventmesh-architecture-guard` continues to pass on develop. (Will be verified by CI; this PR does not add new boundaries.) ## Out of scope (tracked separately) - ArchUnit rule addition for "modern ingress must not import legacy wire types" - this is an arch-guard follow-up; see #5342. - Removal of the legacy TCP client in the next major version - tracked as a #5341 follow-up. -- 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]
