/EventMesh

EventMesh is a dynamic cloud-native eventing infrastruture used to decouple the application and backend middleware layer, which supports a wide range of use cases that encompass complex multi-cloud, widely distributed topologies using diverse technology stacks.

Primary LanguageJavaApache License 2.0Apache-2.0

Apache EventMesh (incubating)

CI status CodeCov Language grade: Java Total alerts GitHub release License

点我查看中文版

logo

What is EventMesh?

EventMesh(incubating) is a dynamic cloud-native eventing infrastruture used to decouple the application and backend middleware layer, which supports a wide range of use cases that encompass complex multi-cloud, widely distributed topologies using diverse technology stacks.

architecture1

EventMesh Ecosystem:

architecture1

EventMesh Architecture:

architecture1

EventMesh Cloud Native:

architecture2

Support connecting event store:

  • RocketMQ:RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability.

Components:

  • eventmesh-runtime : an middleware to transmit events between event producers and consumers, support cloud native apps and microservices.
  • eventmesh-sdk-java : currently supports HTTP and TCP protocols.
  • eventmesh-connector-api : an api layer based on OpenMessaging api and SPI pluggin, which can be implemented by popular EventStores such as IMDG, Messaging Engine and OSS etc.
  • eventmesh-connector-rocketmq : an implementation of eventmesh-connector-api, pub event to or sub event from RocketMQ as EventStore.

Protocol:

The protocol of eventmesh is easier and more convenient, you can read more here

RoadMap

version feature
v1.0.0 Support java-sdk , tcp pub/sub, http pub
v1.1.0 Support RocketMQ as eventstore
v1.1.1 Support https
v1.2.0 Support pluggable event store by OpenMessaging Pub/Sub API, http sub, docker
V1.3.0 Support CloudEvents, event streaming
WIP Support more pluggable event storage (Kafka, Pulsar, Redis, RabbitMQ, etc...)
WIP Support Event schema
WIP Support Event governance
WIP Support Event function,triggers and bindings
WIP Support Event orchestration, Servelss workflow
WIP Support in-memory event store
WIP Support Event transaction
WIP Support Event security
WIP Support multi language SDK(c\go\python\wasm)
WIP Support metrics exporter
WIP Support tracing exporter
WIP Support at-least-once/at-most-once delivery guarantees
WIP Support cold event storage (S3, Minio, SQL, key/value, etc...)
WIP Support gRPC protocol
WIP Support MQTT protocol
WIP Support AsyncAPI

Quick Start

  1. Build and deploy event-store(default RocketMQ), see instruction.
  2. Build and deploy eventmesh-runtime, see instruction 'eventmesh-runtime quickstart'.
  3. Run eventmesh-sdk-java demo, see instruction 'eventmesh-sdk-java quickstart'.

Contributing

Contributions are always welcomed! Please see CONTRIBUTING for detailed guidelines.

You can start with the issues labeled with good first issue. GitHub Issues

Landscape



  

EventMesh enriches the CNCF CLOUD NATIVE Landscape.

License

Apache License, Version 2.0 Copyright (C) Apache Software Foundation.

Community

WeChat group:

wechat_qr

Mailing Lists:

Name Description Subscribe Unsubscribe Archive
Users User support and questions mailing list Subscribe Unsubscribe Mail Archives
Development Development related discussions Subscribe Unsubscribe Mail Archives
Commits All commits to repositories Subscribe Unsubscribe Mail Archives