Using `simple_one_for_one` has a potential race condition issue where we read the PID of the resource manager before trying to remove a resource, and then that PID changes because it was either dead at first, or it crashed and changed, and later we use this stale PID to try to remove it from the supervisor. Under such circumstances, the restarting child might linger in the supervisor, leaking resources. By using the resource ID itself as a child ID (and using `one_for_one` restart strategy), we ensure the child is truly removed. |
||
|---|---|---|
| .. | ||
| etc | ||
| src | ||
| test | ||
| BSL.txt | ||
| docker-ct | ||
| README.md | ||
| rebar.config | ||
Kafka Data Integration Bridge
This application houses the Kafka Producer and Consumer data integration bridges for EMQX Enterprise Edition. It provides the means to connect to Kafka and publish/consume messages to/from it.
Currently, our Kafka Producer library (wolff) has its own replayq
buffering implementation, so this bridge does not require buffer
workers from emqx_resource. It implements the connection management
and interaction without need for a separate connector app, since it's
not used by authentication and authorization applications.
Documentation links
For more information about Apache Kafka, please see its official site.
Configurations
Please see Ingest Data into Kafka for more detailed info.
Contributing
Please see our contributing.md.
License
EMQ Business Source License 1.1, refer to LICENSE.