Awesome
<div align="center"><br /><br /> <img src="resources/logo.png" width="256"> <br />
đĻ Documentation | đ Examples | âī¸ Roadmap | đ įŽäŊä¸æ
</div>Apache EventMesh
Apache EventMesh is a new generation serverless event middleware for building distributed event-driven 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 specification.
- Rapidty extendsible interconnector layer connectors using openConnect such as the source or sink of Saas, CloudService, and Database etc.
- Rapidty extendsible storage layer such as Apache RocketMQ, Apache Kafka, Apache Pulsar, RabbitMQ, Redis.
- Rapidty extendsible meta such as Consul, Nacos, ETCD and Zookeeper.
- Guaranteed at-least-once delivery.
- Deliver events between multiple EventMesh deployments.
- Event schema management by catalog service.
- Powerful event orchestration by Serverless workflow engine.
- Powerful event filtering and transformation.
- Rapid, seamless scalability.
- Easy Function develop and framework integration.
Roadmap
Please go to the roadmap to get the release history and new features of Apache EventMesh.
Subprojects
- EventMesh-site: Apache official website resources for EventMesh.
- EventMesh-workflow: Serverless workflow runtime for event Orchestration on EventMesh.
- EventMesh-dashboard: Operation and maintenance console of EventMesh.
- EventMesh-catalog: Catalog service for event schema management using AsyncAPI.
- 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, Docker, K8s.
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.
Deployment Event Store
EventMesh supports multiple Event Stores, the default storage mode is
standalone
, and does not rely on other event stores as layers.
Run EventMesh Runtime locally
1. Download EventMesh
Download the latest version of the Binary Distribution from the EventMesh Download page and extract it:
wget https://dlcdn.apache.org/eventmesh/1.10.0/apache-eventmesh-1.10.0-bin.tar.gz
tar -xvzf apache-eventmesh-1.10.0-bin.tar.gz
cd apache-eventmesh-1.10.0
2. Run EventMesh
Execute the start.sh
script to start the EventMesh Runtime server.
bash bin/start.sh
View the output log:
tail -n 50 -f logs/eventmesh.out
When the log output shows server state:RUNNING
, it means EventMesh Runtime has started successfully.
You can stop the run with the following command:
bash bin/stop.sh
When the script prints shutdown server ok!
, it means EventMesh Runtime has stopped.
Run EventMesh Runtime in Docker
1. Pull EventMesh Image
Use the following command line to download the latest version of EventMesh:
sudo docker pull apache/eventmesh:latest
2. Run and Manage EventMesh Container
Use the following command to start the EventMesh container:
sudo docker run -d --name eventmesh -p 10000:10000 -p 10105:10105 -p 10205:10205 -p 10106:10106 -t apache/eventmesh:latest
Enter the container:
sudo docker exec -it eventmesh /bin/bash
view the log:
cd logs
tail -n 50 -f eventmesh.out
Run EventMesh Runtime in Kubernetes
1. Deploy operator
Run the following commands(To delete a deployment, simply replace deploy
with undeploy
):
$ cd eventmesh-operator && make deploy
Run kubectl get pods
ãkubectl get crd | grep eventmesh-operator.eventmesh
to see the status of the deployed eventmesh-operator.
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
eventmesh-operator-59c59f4f7b-nmmlm 1/1 Running 0 20s
$ kubectl get crd | grep eventmesh-operator.eventmesh
connectors.eventmesh-operator.eventmesh 2024-01-10T02:40:27Z
runtimes.eventmesh-operator.eventmesh 2024-01-10T02:40:27Z
2. Deploy EventMesh Runtime
Execute the following command to deploy runtime, connector-rocketmq (To delete, simply replace create
with delete
):
$ make create
Run kubectl get pods
to see if the deployment was successful.
NAME READY STATUS RESTARTS AGE
connector-rocketmq-0 1/1 Running 0 9s
eventmesh-operator-59c59f4f7b-nmmlm 1/1 Running 0 3m12s
eventmesh-runtime-0-a-0 1/1 Running 0 15s
Contributing
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.
Here is the List of Contributors, thank you all! :)
<a href="https://github.com/apache/eventmesh/graphs/contributors"> <img src="https://contrib.rocks/image?repo=apache/eventmesh&max=2000" /> </a>CNCF Landscape
<div align="center"> <img src="https://landscape.cncf.io/images/left-logo.svg" width="150"/> <img src="https://landscape.cncf.io/images/right-logo.svg" width="200"/>Apache EventMesh enriches the <a href="https://landscape.cncf.io/serverless?license=apache-license-2-0">CNCF Cloud Native Landscape.</a>
</div>License
Apache EventMesh is licensed under the Apache License, Version 2.0.
Community
WeChat Assistant | WeChat Public Account | Slack |
---|---|---|
<img src="resources/wechat-assistant.jpg" width="128"/> | <img src="resources/wechat-official.jpg" width="128"/> | 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
Name | Description | Subscribe | Unsubscribe | Archive |
---|---|---|---|---|
Users | User discussion | Subscribe | Unsubscribe | Mail Archives |
Development | Development discussion (Design Documents, Issues, etc.) | Subscribe | Unsubscribe | Mail Archives |
Commits | Commits to related repositories | Subscribe | Unsubscribe | Mail Archives |
Issues | Issues or PRs comments and reviews | Subscribe | Unsubscribe | Mail Archives |