Apache EventMesh (incubating)

点我查看中文版

What is EventMesh?
EventMesh(incubating) is a dynamic event-driven application runtime 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.

EventMesh Architecture:

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-plugin : plugins for connector.
- eventmesh-connector-standalone : an implementation of eventmesh-connector-api, pub event to or sub event from InMemory as EventStore.
- eventmesh-connector-rocketmq : an implementation of eventmesh-connector-api, pub event to or sub event from RocketMQ as EventStore.
- eventmesh-connector-kafka(WIP) : an implementation of eventmesh-connector-api, pub event to or sub event from Kafka as EventStore.
- eventmesh-connector-redis(WIP) : an implementation of eventmesh-connector-api, pub event to or sub event from Redis as EventStore.
- eventmesh-connector-defibus(WIP) : an implementation of eventmesh-connector-api, pub event to or sub event from DeFiBus as EventStore
- eventmesh-admin : clients,topics,subscriptions and other management.
- eventmesh-registry-plugin : plugins for registry adapter.
- eventmesh-security-plugin : plugins for security adpater.
- eventmesh-protocol-plugin : plugins for protocol adapter.
Protocol:
The protocol of eventmesh is easier and more convenient, you can read more here
Feature
Event & Service
- [x] Pub/Sub
- [x] Request/Reply
- [ ] Event Streaming
- [ ] Event transaction
- [ ] At-least-once/at-most-once delivery guarantees
Store Connector
- [x] RocketMQ
- [x] InMemory
- [ ] Federated
- [ ] Kafka
- [ ] Redis
- [ ] Pulsar
- [ ] RabbitMQ
- [ ] DeFiBus
- [ ] Cold storage (S3, Minio, SQL, key/value, etc...)
Protocol
- [x] TCP
- [x] Http
- [ ] gRPC
- [ ] CloudEvents
- [ ] MQTT
- [ ] WebSocket
- [ ] AMQP
- [ ] AsyncAPI
SDK
- [x] Java
- [ ] C
- [ ] Go
- [ ] Python
Deploy
- [x] Sidecar
- [x] Gateway
- [x] Docker
Metrics
- [x] OpenTelemetry
- [x] Promethus exporter
Tracing
- [x] OpenTelemetry
- [x] Zipkin exporter
- [ ] Skywalking
Governance
- [x] Client management
- [ ] Topic management
- [ ] Metadata registry
- [ ] Schema registry
- [ ] Dynamic config
Choreography
- [ ] Servelss workflow
- [ ] Event function,triggers and bindings
Security
Runtime
Quick Start
- Store quickstart
- Runtime quickstart or Runtime quickstart with docker.
- Java SDK examples.
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
License
Apache License, Version 2.0 Copyright (C) Apache Software Foundation.
Community
Mailing Lists: