camunda / issues

4 stars 0 forks source link

BPMN Compensation Events and handlers #56

Open engineering-issue-sync-app[bot] opened 1 year ago

engineering-issue-sync-app[bot] commented 1 year ago

Value Proposition Statement

Support for BPMN Compensation Events + Activities to rollback successful operations.

User Problem

We execute tasks in our processes that sometimes have to be canceled later under certain circumstances. Compensation Events+Activities is a very powerful construct for handling such situations. Without these BPMN symbols, users would have to add a lot of additional complexity to their models. Today these symbols are not supported by Camunda 8, whereas we support them in Camunda 7.

Release notes

In process orchestration, executed tasks may need to be canceled later under certain circumstances. BPMN compensation events and handlers allow you to undo or reverse the effects of activities in case of errors, exceptions, or cancellations, ensuring consistency, reliability, and compliance in complex business scenarios. Compensation supports the Saga pattern, and Zeebe as Saga Coordinator helps to solve transactions without two-phase-commit in distributed systems.

User Stories

General:

Implementation Notes

Modeling

Zeebe

Operate

Optimize

Documentation

Next iteration (after this epic)

:robot: This issue is automatically synced from: source

dddpaul commented 12 months ago

Hi.

I have an issue with Camunda 8 and long running processes. By long running process I mean:

For example:

image

With hundreds of thousands PIs being deployed there are plenty of catch timer events could be fired in small time period. With 1 million PI being deployed it may look like this:

image

And it's make me frustrated. I've just want to cancel execution. Instead stream processors are flooded by internal generated events and my brokers are killed by OOM.

The batch processing could help me with this, but to be combined in batch - commands should be generated from one PI, not from multiple ones.

The backpressure mechanism also could be useful - but it limits only commands from client, not internal ones.

There is some feature https://github.com/camunda/zeebe/issues/12560 to present internal stream processor rate limiter, but it's blocked by some mystical https://github.com/camunda/product-hub/issues/1426.

These separate and special compensation events presented by this feature, will they have a separate and special handling or a more controllable handling to prevent event flooding?

PS: I've tested on 8.3.0-alpha6. PPS: I've just found https://github.com/camunda/zeebe/issues/5134, maybe it's more appropriate place to ask.