EventMesh

Introduction: 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.
More: Author   ReportBugs   
Tags:



CI status CodeCov Code Quality: Java Total Alerts License GitHub Release Slack Status 📦 Documentation | 📔 Examples | ⚙️ Roadmap | 🌐 简体中文

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

EventMesh Architecture

EventMesh Architecture

EventMesh Dashboard

EventMesh Dashboard

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

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 podskubectl get crd | grep eventmesh-operator.eventmeshto 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! :)

CNCF Landscape

Apache EventMesh enriches the CNCF Cloud Native Landscape.

License

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

Community

WeChat Assistant WeChat Public Account Slack
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
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools