tiagodolphine commented on code in PR #1906:
URL: 
https://github.com/apache/incubator-kie-kogito-apps/pull/1906#discussion_r1389432407


##########
data-index/data-index-common/src/main/java/org/kie/kogito/index/service/IndexingService.java:
##########
@@ -69,6 +71,34 @@ public class IndexingService {
     Instance<UserTaskInstanceEventMerger> userTaskInstanceMergers;
 
     public void indexProcessInstanceEvent(ProcessInstanceDataEvent<?> event) {
+        //retry in case of rare but possible race condition during the insert 
for the first registry
+        ProcessInstance pi = executeWithRetry(event, 
this::handleProcessInstanceEvent, "indexing process instance");
+
+        ProcessDefinition definition = pi.getDefinition();
+
+        if (definition != null && 
!manager.getProcessDefinitionsCache().containsKey(definition.getKey())) {
+            //retry in case of rare but possible race condition during the 
insert for the first registry
+            executeWithRetry(definition, this::handleProcessDefinition, 
"indexing process definition");

Review Comment:
   this is not a particular problem for MongoDB, this is a general problem 
related to concurrency to insert/update the a registry with the same 
identifier/primary key, and it was realized with PostgreSQL at first. 
   One option is to use `smallrye-fault-tolerance` where we have more control 
for the retry policy and make the code cleaner, this would avoid introducing 
the retry method but introduce a new dependency.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to