Skip to content

Latest commit

 

History

History
180 lines (133 loc) · 11 KB

README.md

File metadata and controls

180 lines (133 loc) · 11 KB

Apache EventMesh

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

EventMesh Architecture

EventMesh Architecture

EventMesh K8S deployment

EventMesh Operator

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.

1. Pull EventMesh Image

Use the following command line to download the latest version of EventMesh:

sudo docker pull apache/eventmesh:latest

2. Run EventMesh Runtime

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

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

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.

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.

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.

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

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 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