lib-bpmn-engine icon indicating copy to clipboard operation
lib-bpmn-engine copied to clipboard

Add Feature -Redis Exporter and Exporter Interface Variable Update For Zeebe

Open aamirmousavi opened this issue 6 months ago • 1 comments

Motivation/Abstract

Our primary motivation is to utilize Redis as a supported exporter for Zeebe to meet specific project requirements and to improve the testability and monitoring of BPMN flows by allowing direct variable manipulation. This PR introduces a functional Redis exporter and extends the Exporter interface with an updateVariable method (implemented for both Hazelcast and Redis) to address these needs.

Description/Comments

This pull request delivers two key enhancements:

  • Redis Exporter Implementation: We've developed a Redis exporter because our operational setup requires its use over Hazelcast. The implementation ensures that Zeebe records can be effectively streamed to and stored in Redis, aligning with Zeebe's official support for Redis as an alternative exporter.
  • updateVariable in Exporter Interface: To facilitate more robust testing and monitoring of our BPMN processes, especially when needing to simulate specific states or debug issues related to process variables, we've added an updateVariable method to the Exporter interface. This new method has been implemented for both the existing Hazelcast exporter and the newly introduced Redis exporter, providing a consistent way to modify variables regardless of the chosen exporter. These changes aim to offer more flexibility in exporter choices and enhance the developer experience around testing and process instance management.

#271

Tests

  • [ ] did you update or create tests for your code changes?
  • [X] not relevant

Code examples

  • [X] did you update or add example code snippets, which relate to your code changes
  • [ ] not relevant

Documentation

  • [X] did you update or create documentation, which relates to your code changes
  • [ ] not relevant

aamirmousavi avatar May 28 '25 08:05 aamirmousavi