docs: downgrade Connector Runtime Beta -> Experimental, sync features doc with #5328 (#5329)

The capability status table marked Connector Runtime as Beta, but only 4 of
23 plugins (file/kafka/pulsar/rocketmq) carry unit tests; the rest are
template implementations. Downgrade to Experimental and point at what has
actually landed: data-loss hardening + SPI split into eventmesh-connector-api
(#5328).

- README.md / README.zh-CN.md: status row updated
- docs/eventmesh-features.md ยง8: status paragraph + SPI module path fixed
  (top-level eventmesh-connector-api/, not under connector-plugin)
3 files changed
tree: 78e12399896de00dbdd2521bd4b0bc29efdc6a5b
  1. .github/
  2. docker/
  3. docs/
  4. eventmesh-agent/
  5. eventmesh-architecture-guard/
  6. eventmesh-common/
  7. eventmesh-connector-api/
  8. eventmesh-connector-plugin/
  9. eventmesh-connector-runtime/
  10. eventmesh-examples/
  11. eventmesh-protocol-plugin/
  12. eventmesh-runtime/
  13. eventmesh-sdks/
  14. eventmesh-spi/
  15. eventmesh-storage-plugin/
  16. gradle/
  17. resources/
  18. style/
  19. tools/
  20. .asf.yaml
  21. .dockerignore
  22. .gitattributes
  23. .gitignore
  24. .gitmodules
  25. .licenserc.yaml
  26. build.gradle
  27. gradle.properties
  28. gradlew
  29. gradlew.bat
  30. install.sh
  31. LICENSE
  32. maturity.md
  33. NOTICE
  34. README.md
  35. README.zh-CN.md
  36. settings.gradle
README.md




CI status CodeCov Code Scanning

License GitHub Release Slack Status

๐Ÿ“ฆ Documentation | ๐Ÿ“” Examples | โš™๏ธ Roadmap | ๐ŸŒ ็ฎ€ไฝ“ไธญๆ–‡

Apache EventMesh

Apache EventMesh is a new generation serverless event middleware for building distributed event-driven applications.

EventMesh Architecture

EventMesh Architecture

EventMesh adopts a unified CloudEvents-over-MQ architecture. The message queue (MQ) acts as a pure write-ahead log (WAL) for durable storage only โ€” there are no consumer groups, no tags, and no broker-side subscription semantics. Instead, the stateless EventMesh Runtime owns all delivery logic: its SubscriptionManager maintains the subscription registry and offset tracking, and dispatches events with load-balance, broadcast, and multicast semantics. Applications interact through a lightweight HTTP + CloudEvents 1.0 SDK (publish / subscribe / unsubscribe), while integration with external systems runs in a standalone Connector Runtime via the connector SPI.

Features

Apache EventMesh is packed with features that help users build event-driven applications with ease. Here are the highlights that set EventMesh apart:

Core architecture

  • CloudEvents-native, end to end โ€” built entirely around the CloudEvents 1.0 specification, so events stay vendor-neutral and portable.
  • Lightweight, language-agnostic SDK โ€” just three operations over plain HTTP (publish, subscribe, unsubscribe); no heavyweight client, no vendor lock-in.
  • Runtime-owned subscription & dispatch โ€” subscription state and delivery semantics (load-balance / broadcast / multicast) are managed by EventMesh itself, not the underlying MQ, giving you consistent behavior across any storage backend.
  • MQ as a pure write-ahead log (WAL) โ€” append-only, no consumer groups, no tags; the broker is reduced to durable storage, dramatically simplifying operations.
  • Guaranteed at-least-once delivery โ€” EventMesh owns reliability through self-managed offsets and explicit ACK.
  • Multiple delivery transports โ€” subscribers choose HTTP long-polling, Server-Sent Events (SSE), or WebSocket push, with request-reply support.
  • Effortless horizontal scaling โ€” stateless Runtime instances scale out seamlessly with no rebalancing cost.

Extensibility & ecosystem

  • Agent-to-Agent (A2A) collaboration โ€” a built-in A2A protocol turns EventMesh into an agent collaboration bus, bridging synchronous MCP / JSON-RPC 2.0 tool calls and asynchronous event-driven pub/sub for LLM and multi-agent systems.
  • Pluggable storage layer โ€” Apache RocketMQ, Apache Kafka, Apache Pulsar, RabbitMQ, Redis, and more.
  • Pluggable interconnector layer โ€” connectors run as standalone processes acting as the source or sink of SaaS, CloudService, Database, etc.
  • Pluggable meta service โ€” Consul, Nacos, ETCD, and Zookeeper.
  • Event schema management via catalog service.
  • Powerful event orchestration through the Serverless workflow engine.
  • Powerful event filtering and transformation.

Capability status

Each EventMesh surface carries an explicit maturity status. The table below is the single source of truth โ€” module-level docs link here instead of restating their status. See docs for the per-capability guides.

CapabilityStatusRecommendationMigration target
HTTP + CloudEventsGA targetRecommended โ€” the primary user path (CloudEventsClient + /events/*)Primary path
Kafka / RocketMQ storage (4.x, 5.x)GA targetRecommended โ€” pluggable WAL backends, TCK-covered (MeshStoragePluginTCK)Primary path
SSE / WebSocket pushBetaUsable โ€” integration-tested; unified ACK/redelivery semantics still landingUnified push transports
Connector RuntimeExperimentalWorking end-to-end, but only 4 of 23 plugins (file/kafka/pulsar/rocketmq) have unit tests โ€” the rest are templates; data-loss hardening landed in #5328SPI split into eventmesh-connector-api (#5328); remaining plugin tests + GA criteria tracked under the #5296 architecture review
A2A / Agent GatewayExperimentalEvaluate โ€” task store + runtime bridge landed (#5302/#5304); reaper & Meta-backed agent cards pendingUnified Runtime A2A
TCP / gRPC / OpenMessaging SDKsLegacy-compatibleExisting users only โ€” kept so old clients run unmodified; not extendedHTTP + CloudEvents

Status meanings:

  • GA target โ€” feature-complete for the current architecture, integration-tested against real brokers; safe for production.
  • Beta โ€” functional and tested, but semantics or deployment shape may still shift in a minor release.
  • Experimental โ€” under active development; APIs and storage layouts may break; wire it up on dev clusters first.
  • Legacy-compatible โ€” maintained for zero-change compatibility with existing clients; receives fixes but no new features. New integrations should not start here.

Migrating off TCP / gRPC SDKs? The legacy clients keep working against the current runtime; see the client guide for the HTTP + CloudEvents replacement (CloudEventsClient).

Documentation

  • Getting started โ€” zero to running runtime in minutes
  • Configuration reference โ€” every runtime key, per-backend settings, security & quota
  • Client guide โ€” complete CloudEventsClient walkthrough (pub/sub, request-reply, streaming, lite topics)
  • Architecture โ€” control / data / agent planes; storage SPI; security gate; A2A stack
  • Features โ€” feature-by-feature guide (pub/sub, A2A, connectors, security, reliability)

Subprojects

Quick start

A full step-by-step walkthrough โ€” prerequisites, backend choice, run via Docker or from source, first publish, three receive transports, unsubscribe, and the SDK path โ€” lives in Getting started. The first-event examples in that guide work against the standard ports (8080 HTTP, 8081 admin, 8082 WebSocket, 8083 connector admin).

Contributing

GitHub repo Good Issues for newbies GitHub Help Wanted issues GitHub Help Wanted PRs GitHub repo Issues

Each contributor has played an important role in promoting the robust development of Apache EventMesh. We sincerely appreciate all contributors who have contributed code and documents.

CNCF Landscape

Apache EventMesh enriches the CNCF Cloud Native Landscape.

License

Apache EventMesh is licensed under the Apache License, Version 2.0.

Community

WeChat AssistantWeChat Public AccountSlack
Join Slack Chat(Please open an issue if this link is expired)

Bi-weekly meeting : #Tencent meeting : 346-6926-0133

Bi-weekly meeting record : bilibili

Mailing List

NameDescriptionSubscribeUnsubscribeArchive
UsersUser discussionSubscribeUnsubscribeMail Archives
DevelopmentDevelopment discussion (Design Documents, Issues, etc.)SubscribeUnsubscribeMail Archives
CommitsCommits to related repositoriesSubscribeUnsubscribeMail Archives
IssuesIssues or PRs comments and reviewsSubscribeUnsubscribeMail Archives