-
Notifications
You must be signed in to change notification settings - Fork 180
Description
Recently I have encountered the below scenario .
I have 2 processors .
Processor 1 does some processing on a list of items and then stored the metadata like length of list , no of items and other info in its group table .
Processor 2 reads some message from a topic and does some processing. Additionally it also has a view of the group table of Processor 1 .
If Processor has processed 10 items , then in the group table , we would meta of sth like ListLength = 10 and so on. Additionally its also expected that Processor 2 would receive 10 items in its topic .
What I have seen is the following :
- Processor 2 reads say 1-2 items . and tries to get the metadata from the View of Processor 1 Table . It does not find it .
- Processor 2 reads say the next 8 items , this time its able to get the View of Processor 1 Table and then does processing .
Effectively , what happening is that the batch of 10 items is kind of stuck , since the first 2 items did not get processed cleanly due to the View not having the metadata .
How do I solve this problem , basically I want to keep track of the unprocessed 2 items , to effectively conclude the batch of 10 is fully processed . Is there a way to retry or some kind of push back to self topic or sth .
To me this looks like there is some time taken for the View to get updated .