https://github.com/apache/eventmesh
EventMesh is a new generation serverless event middleware for building distributed event-driven applications.
https://github.com/apache/eventmesh
cloud-native cqrs esb event-connector event-driven event-gateway event-governance event-mesh event-sourcing event-streaming hacktoberfest message-bus microservice multi-runtime pubsub serverless serverless-workflow
Last synced: about 1 month ago
JSON representation
EventMesh is a new generation serverless event middleware for building distributed event-driven applications.
- Host: GitHub
- URL: https://github.com/apache/eventmesh
- Owner: apache
- License: apache-2.0
- Created: 2019-09-16T03:04:56.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2025-04-30T08:39:16.000Z (about 2 months ago)
- Last Synced: 2025-05-06T06:03:00.592Z (about 2 months ago)
- Topics: cloud-native, cqrs, esb, event-connector, event-driven, event-gateway, event-governance, event-mesh, event-sourcing, event-streaming, hacktoberfest, message-bus, microservice, multi-runtime, pubsub, serverless, serverless-workflow
- Language: Java
- Homepage: https://eventmesh.apache.org/
- Size: 64.9 MB
- Stars: 1,644
- Watchers: 64
- Forks: 637
- Open Issues: 226
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome - apache/eventmesh - native,cqrs,esb,event-connector,event-driven,event-gateway,event-governance,event-mesh,event-sourcing,event-streaming,hacktoberfest,message-bus,microservice,multi-runtime,pubsub,serverless,serverless-workflow pushed_at:2025-05 star:1.6k fork:0.6k EventMesh is a new generation serverless event middleware for building distributed event-driven applications. (Java)
- awesome-java - Apache EventMesh
README
![]()
[](https://github.com/apache/eventmesh/actions/workflows/ci.yml)
[](https://codecov.io/gh/apache/eventmesh)
[](https://lgtm.com/projects/g/apache/eventmesh/context:java)
[](https://lgtm.com/projects/g/apache/eventmesh/alerts/)[](https://www.apache.org/licenses/LICENSE-2.0.html)
[](https://github.com/apache/eventmesh/releases)
[](https://join.slack.com/t/the-asf/shared_invite/zt-1y375qcox-UW1898e4kZE_pqrNsrBM2g)
[đĻ Documentation](https://eventmesh.apache.org/docs/introduction) |
[đ Examples](https://github.com/apache/eventmesh/tree/master/eventmesh-examples) |
[âī¸ Roadmap](https://eventmesh.apache.org/docs/roadmap) |
[đ įŽäŊ䏿](README.zh-CN.md)# Apache EventMesh
**Apache EventMesh** is a new generation serverless event middleware for building distributed [event-driven](https://en.wikipedia.org/wiki/Event-driven_architecture) applications.
### EventMesh Architecture

### EventMesh K8S deployment

## Features
Apache EventMesh has a vast amount of features to help users achieve their goals. Let us share with you some of the key features EventMesh has to offer:
- Built around the [CloudEvents](https://cloudevents.io) specification.
- Rapidty extendsible interconnector layer [connectors](https://github.com/apache/eventmesh/tree/master/eventmesh-connectors) using [openConnect](https://github.com/apache/eventmesh/tree/master/eventmesh-openconnect) such as the source or sink of Saas, CloudService, and Database etc.
- Rapidty extendsible storage layer such as [Apache RocketMQ](https://rocketmq.apache.org), [Apache Kafka](https://kafka.apache.org), [Apache Pulsar](https://pulsar.apache.org), [RabbitMQ](https://rabbitmq.com), [Redis](https://redis.io).
- Rapidty extendsible meta such as [Consul](https://consulproject.org/en/), [Nacos](https://nacos.io), [ETCD](https://etcd.io) and [Zookeeper](https://zookeeper.apache.org/).
- Guaranteed at-least-once delivery.
- Deliver events between multiple EventMesh deployments.
- Event schema management by catalog service.
- Powerful event orchestration by [Serverless workflow](https://serverlessworkflow.io/) engine.
- Powerful event filtering and transformation.
- Rapid, seamless scalability.
- Easy Function develop and framework integration.## Roadmap
Please go to the [roadmap](https://eventmesh.apache.org/docs/roadmap) to get the release history and new features of Apache EventMesh.
## Subprojects
- [EventMesh-site](https://github.com/apache/eventmesh-site): Apache official website resources for EventMesh.
- [EventMesh-workflow](https://github.com/apache/eventmesh-workflow): Serverless workflow runtime for event Orchestration on EventMesh.
- [EventMesh-dashboard](https://github.com/apache/eventmesh-dashboard): Operation and maintenance console of EventMesh.
- [EventMesh-catalog](https://github.com/apache/eventmesh-catalog): Catalog service for event schema management using AsyncAPI.
- [EventMesh-go](https://github.com/apache/eventmesh-go): A go implementation for EventMesh runtime.## Quick start
This section of the guide will show you the steps to deploy EventMesh from [Local](#run-eventmesh-runtime-locally), [Docker](#run-eventmesh-runtime-in-docker), [K8s](#run-eventmesh-runtime-in-kubernetes).
This section guides the launch of EventMesh according to the default configuration, if you need more detailed EventMesh deployment steps, please visit the [EventMesh official document](https://eventmesh.apache.org/docs/introduction).
#### 1. Pull EventMesh Image
Use the following command line to download the latest version of [EventMesh](https://hub.docker.com/r/apache/eventmesh):
```shell
sudo docker pull apache/eventmesh:latest
```#### 2. Run EventMesh Runtime
Use the following command to start the EventMesh container:
```shell
sudo docker run -d --name eventmesh -p 10000:10000 -p 10105:10105 -p 10205:10205 -p 10106:10106 -t apache/eventmesh:latest
```
#### 3. Creating Topics
Creating a topic is the first step in using EventMesh. You need to send an HTTP POST request to create a topic.
Example Request
```shell
POST /eventmesh/topic/create HTTP/1.1
Host: localhost:10105
Content-Type: application/json
{
"topic": "example-topic"
}
```
#### 4. Subscribing to Topics
After creating a topic, you can subscribe to it to receive messages. EventMesh provides two subscription methods: local subscription and remote subscription.```shell
POST /eventmesh/subscribe/local HTTP/1.1
Host: localhost:10105
Content-Type: application/json
{
"url": "http://localhost:8080/callback",
"consumerGroup": "example-consumer-group",
"topic": [
{
"topic": "example-topic",
"mode": "CLUSTERING",
"type": "SYNC"
}
]
}
```
#### 5. Sending Messages
EventMesh provides multiple message sending methods, including asynchronous sending, synchronous sending, and batch sending.
```shell
POST /eventmesh/publish HTTP/1.1
Host: localhost:10105
Content-Type: application/json
eventmesh-message-topic: example-topic
{
"content": "Hello, EventMesh!"
}
```
#### 6. Unsubscribing
When you no longer need to receive messages for a topic, you can unsubscribe.
```shell
POST /eventmesh/unsubscribe/local HTTP/1.1
Host: localhost:10105
Content-Type: application/json
{
"url": "http://localhost:8080/callback",
"consumerGroup": "example-consumer-group",
"topics": ["example-topic"]
}
```
## Contributing[](https://github.com/apache/eventmesh/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) [](https://github.com/apache/eventmesh/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) [](https://github.com/apache/eventmesh/pulls?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) [](https://github.com/apache/eventmesh/issues?q=is%3Aopen)
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.
- [Contributing Guideline](https://eventmesh.apache.org/community/contribute/contribute)
- [Good First Issues](https://github.com/apache/eventmesh/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)## CNCF Landscape
Apache EventMesh enriches the CNCF Cloud Native Landscape.
## License
Apache EventMesh is licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html).
## Community
| WeChat Assistant | WeChat Public Account | Slack |
|---------------------------------------------------------|--------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
||
| [Join Slack Chat](https://join.slack.com/t/the-asf/shared_invite/zt-1y375qcox-UW1898e4kZE_pqrNsrBM2g)(Please open an issue if this link is expired) |
Bi-weekly meeting : [#Tencent meeting](https://meeting.tencent.com/dm/wes6Erb9ioVV) : 346-6926-0133
Bi-weekly meeting record : [bilibili](https://space.bilibili.com/1057662180)
### Mailing List
| Name | Description | Subscribe | Unsubscribe | Archive |
|-------------|---------------------------------------------------------|------------------------------------------------------------|----------------------------------------------------------------|----------------------------------------------------------------------------------|
| Users | User discussion | [Subscribe](mailto:[email protected]) | [Unsubscribe](mailto:[email protected]) | [Mail Archives](https://lists.apache.org/[email protected]) |
| Development | Development discussion (Design Documents, Issues, etc.) | [Subscribe](mailto:[email protected]) | [Unsubscribe](mailto:[email protected]) | [Mail Archives](https://lists.apache.org/[email protected]) |
| Commits | Commits to related repositories | [Subscribe](mailto:[email protected]) | [Unsubscribe](mailto:[email protected]) | [Mail Archives](https://lists.apache.org/[email protected]) |
| Issues | Issues or PRs comments and reviews | [Subscribe](mailto:[email protected]) | [Unsubscribe](mailto:[email protected]) | [Mail Archives](https://lists.apache.org/[email protected]) |