Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Process the modification command atomically if it is rejected #9710

Closed
Tracked by #9570
saig0 opened this issue Jul 6, 2022 · 1 comment
Closed
Tracked by #9570

Process the modification command atomically if it is rejected #9710

saig0 opened this issue Jul 6, 2022 · 1 comment

Comments

@saig0
Copy link
Member

saig0 commented Jul 6, 2022

Description

The modification command can be rejected for different reasons (e.g. element instance is not active anymore). If the command is rejected then we need to ensure that no side-effect is produced (i.e. no records written, no state modified). The command should be processed atomically.

Note that this issue depends on the progress of the engine abstraction topic. We need to roll back the side-effects (i.e. database transaction, records) in the engine if the command gets rejected. But we don't have control over the side-effect in the engine.

Currently, we could only throw an exception to roll back the side effects. As a result, the side-effects are rolled back and the command is rejected. But this would also add the process instance to the blacklist and would make it unusable.

One hacky idea is to create a special exception (e.g. DoNotBlacklistProcessInstanceException) and handle this explicitly in the stream processor to avoid that the process instance being added to the blacklist.

Related to #9420
Related to #9644

Blocked by

@korthout
Copy link
Member

korthout commented Aug 30, 2022

I think this issue is already done as the capability is already there. The specific usage of this will come with

I'll close it as completed.

@saig0 @remcowesterhoud Please reopen this issue if you think I missed something.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants