/Camunda-MultiEngine-Data-Service

Camunda Process Engine Plugin providing a new History Handler (MongoDB) and Query Service that supports Complex Security Rules and Mongo Aggregations

Primary LanguageKotlin

Multi-Engine Data Service

WIP release from internal closed source version.

Quick Dev Setup

  1. install MongoDb runner with replica set support npm install run-rs -g (https://www.npmjs.com/package/run-rs?activeTab=readme)
  2. in terminal run run-rs -v 4.4.2
  3. Run the springboot module

Plugin Configuration

clientConnectionString String databaseName String clusterName String stopStartupIfNoDbConnection boolean pingDbOnStartup boolean generateIdentityLinkInstances boolean

Plugin Configuration Examples:

Spring Boot:

Java:

class MyMongoHistoryMongoHistoryEventHandlerProcessEnginePlugin extends MongoHistoryEventHandlerProcessEnginePlugin{
    
}

Kotlin:

@Component
class MyMongoHistoryMongoHistoryEventHandlerProcessEnginePlugin: MongoHistoryEventHandlerProcessEnginePlugin()

Camunda Distributions (Non-Springboot):

Processes.xml / bpm-platform.xml

<xml>
    
</xml>

Datasource Requirements

  1. MongoDB version that supports multi-document transactions (4.0+). If you are using a sharded cluster then 4.2+ will be required.
  2. MongoDB deployment with at least 3 replicas for support of the multi-document transactions.

Relations

All History objects have a relations object that can hold all other history object types.

Features:

  1. Microservices Ready! Query data across multiple camunda engines and clusters.
  2. Works with Camunda's Spring Boot, Camunda Run, and other camunda supported distributions.
  3. High flexible Data Importer used transfer of data from existing Camunda instances into the EngineDataService
  4. Modern DTOs for all History Events
  5. DTOs for Deployments, Deployment Resources, Process Definitions, Decision Definitions, and Decision Requirements Definitions
  6. History Service Query Capability
  7. Configurable joins between relevant history events
  8. Robust security system for all history data, allowing complex security that was not previously possible with Camunda's APIs.
  9. Integration with Camunda's transactions, ensuring proper rollbacks upon error.
  10. Storage of BPMN JSON Models allowing query of BPMNs as JSON structures and joins with history data.
  11. Utilize Mongo's Aggregation Framework to tailor exact data query and response formation.
  12. Leverage PowerBI, Tableau, Grafana, and other reporting tooling to visualize your data
  13. Leverage Mongo change streams to receive realtime event changes in historic data based on Mongo Aggregation Framework queries.
  14. Query Camunda Process Variables in their native formats, Text, Dates, Lists, JSON, custom objects, etc. (Query JSON!)