I know this seems quite obvious for a lot of people but my client is using a pattern that I am not really convenient with.
Case is, that a customer of theirs sends a deposit or withdrawal that through nservicebus is sent to a third party system. The third party system need to take care of that transaction but it might take days, maybe even weeks before the transaction is completed.
The solution today is that a saga is created that first sends a message for putting the transaction over to the third party system. When done, the sagas next step is to check for a completion update. If the transaction isn't completed a requesttimeout is sent, 'like a wait'. When the timeout is reached the same check is performed once again and a new requesttimeout is sent... and so on. This has been an eternal loop. What else that it does is to completely fill ServiceInsight with same SagaTimeout over and over.
I have been looking into SLR but it seems to come out shorthanded. I would only need many retries for a particular message not for all messages.
To add, the third party system cannot send an event of transaction has been completed which means we need to poll for completion updates.
Another, what I believe better solution would be to save the transaction's status, send the transaction to third party and finish this particular saga. Then have a saga that is checking for completion updates using time intervals.
Is it a common pattern to use the sagatimeouts this way? And, is it a better solution to have a saga/handler only checking for completion updates?