I’ve been trying to figure this out for a while but just can’t wrap my mind around it.
Lets say I have a Saga that orchestrates a sale process:
The steps executed sequentially are
- raise a command to OrderService to place order
- raise a command to ProcessPayments
- publish an event to Ship Order
If there is a transient/ semi-transient error in one of these services the configured primary and delayed retries kick in. In the worst case scenario lets suppose there is an infrastructure failure and the db doesn’t come back up or an internal web service call fails, these messages are moved to the error queue (where we can retry later using service pulse)
How should the saga behave if the OrderService service faces a problem like this and doesn’t send a OrderSuccessful message back to the saga. Are there any best practices?
I’m sure it is problem that everyone’s faced …feel miserable not being able to figure out this