# rocketmq-eventbridge **Repository Path**: mirrors_apache/rocketmq-eventbridge ## Basic Information - **Project Name**: rocketmq-eventbridge - **Description**: Apache rocketmq - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-02-10 - **Last Updated**: 2026-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Apache RocketMQ EventBridge RocketMQ EventBridge is a subproject of rocketmq to make it easier to build event-driven applications. In addition, rocketmq-eventbridge can route events between many services and applications based on the standard CloudEvents 1.0 specification. Users can use rocketmq-eventbridge to build loosely coupled and distributed event-driven architectures. ## Architecture Events are sent to the event bus in two ways: 1) Push events through the SDK or Webhook actively; 2) Pulled events by eventbridge passively. Events obtained in both ways will be stored on the event bus. EventBus is the core concept in EventBridge, which allows you to subscribe to the events, filter the events, and push to the specified target by creating the event rule. The event on the event bus is stored by rocketmq. Through rocketmq-connect, we can pull the event from the register source to the event bus, or push the events from the event bus to the registered target. image The code architecture of EventBridge include 4 core modules: - `adapter` Adapt to different operating environments - `persistence` Implement the repository API in the domain layer and persist the model data. - `api` The open API provided by EventBridge. - `rpc` Implement the rpc API in the domain layer to adapter the run environment. - `common` The common code of all modules. - `domain` The core code of EventBridge. - model:The core properties and behaviors of model on EventBridge. - service: The domain services which across multiple domains. - `start` ## Quick Start RocketMQ EventBridge rely on a message service to store the event, and needs one connect service to collect or forward events.Here, we choose the Apache RocketMQ as our message service, and choose the Apache RocketMQ Connect as our connect service.Of course, you can also choose other alternative services. Eventbridge do not limit it. You only need to provide the relevant adapter API implementation. #### Deploy Apache RocketMQ Apache RocketMQ is a great messaging service,and we choose it as our message service.You can deploy the apache rocketmq according to the manual: [RocketMQ Quick Start](https://rocketmq.apache.org/docs/quick-start/) ### Deploy Apache RocketMQ EventBridge * Download EventBridge Binary Package You can download it from [here](https://www.apache.org/dyn/closer.cgi?path=rocketmq/rocketmq-eventbridge/1.1.0/rocketmq-eventbridge-1.1.0-bin-release.zip) EventBridge binary package: rocketmq-eventbridge-xxx-bin-release.zip. After downloading, unzip it. You will get a directory as follows: ```text /rocketmq-eventbridge-xxx-bin-release/ |——bin | |——runserver.sh | |——eventbridge.sh |——config | |——application.properties |——plugin | |——eventbridge-connect-file-with-dependencies.jar | |——connect-filter-transform-with-dependencies.jar | |——connect-eventbridge-transform-with-dependencies.jar |——rocketmq-eventbridge.jar ``` * Config Before running, we need to configure the running environment of EventBridge and modify the RocketMQ nameserver connection address in config/application.properties. ```properties rocketmq.namesrvAddr=localhost:9876 ``` * Start EventBridge Note: The downloaded EventBridge binary package may not have permission to execute. You can authorize it in advance through chmod. ```shell sh bin/eventbridge.sh start ``` The default log directory is ~/rocketmq-eventbridge/rocketmq-eventbridge.log. You can modify log.path and app.name in config/application.properties to observe whether the service starts normally through the log. ## Demo #### * Put Events to EventBus When the service is started, the system will initialize an EventBus named "demo-bus" by default, and create a rule under the Bus by default to subscribe to all events on the Bus and push and write them to a local file. So we can test and verify in the following ways: ```text curl -X POST http://127.0.0.1:7001/putEvents \ -H "Content-Type: application/json; charset=UTF-8" \ -H "ce-specversion:1.0" \ -H "ce-type:com.github.pull_request.opened" \ -H "ce-source:https://github.com/cloudevents/spec/pull" \ -H "ce-subject:demo" \ -H "ce-id:1234-1234-1234" \ -H "ce-datacontenttype:application/json" \ -H "ce-time:2018-04-05T17:31:00Z" \ -H "ce-eventbusname:demo-bus" \ -d 'A test event.' ``` * Check whether the event is successfully written to the target end of the Rule subscription The Rule created by default will write data to the local file "~/demo". You can judge whether the event sent is successfully delivered to the target by viewing the file content. ```agsl root % tail -f ~/demo A test event. A test event. A test event. ```