-
Story
-
Resolution: Done
-
Major
-
None
-
False
-
False
-
Undefined
-
---
-
---
-
-
2020 Week 43-45 (from Okt 19), 2020 Week 46-48 (from Nov 9), 2020 Week 49-51 (from Nov 30), 2020 Week 52-03 (from Dec 21), 2021 Week 04-06 (from Jan 25), 2021 Week 07-09 (from Feb 15), 2021 Week 10-12 (from Mar 8), 2021 Week 13-15 (from Mar 29), 2021 Week 16-18 (from Apr 19), 2021 Week 19-21 (from May 10), 2021 Week 22-24 (from May 31), 2021 Week 25-27 (from Jun 21), 2021 Week 28-30 (from Jul 12), 2021 Week 31-33 (from Aug 2), 2021 Week 34-36 (from Aug 23), 2021 Week 37-39 (from Sep 13), 2021 Week 40-42 (from Oct 4)
The core engine is responsible for executing business logic. When this is stateful, the state of the engine is persisted at the end of the service invocation. On top of that, the engine also typically sends out events around what is happening during execution (the engine already aggregates these so they can be sent out in bulk at the end of the service invocation too). Potentially, there could be inconsistency when performing these two types of actions.
A solution is to implement the outbox pattern to handle the actions in one transaction:
- https://debezium.io/blog/2019/02/19/reliable-microservices-data-exchange-with-the-outbox-pattern/
- https://dzone.com/articles/implementing-the-outbox-pattern
For this story, a PoC, which uses MongoDB as persistence solution and Debezium as message relay, is created to implement the outbox pattern to manage the consistency of kogito runtime persistence and events.
- causes
-
KOGITO-5296 Transaction management without using ThreadLocal (Context propagation) for Kogito runtime with MongoDB
- Open