Lets assume I have defined the routing slip activity. Within Execute method I would like to make several asynchronous service calls. Lets assume 3 service calls. Two of them succeed and one fails. Then I would like to execute compensate action of this activity in order to compensate the changes introduced by two succeeded service calls. From what I see the compensation only runs for previous activities, the current activity compensation has no chance to be invoked when there is exception somewhere in it. Is there a way to deal with it or I should change the approach?
Is there a way to execute the compensation from faulted activity
550 Views Asked by tgrabus At
1
There are 1 best solutions below
Related Questions in MASSTRANSIT
- MassTransit Kafka producers configure to send several events to the same Kafka topic
- Value cannot be null ( parameter envolope)
- MassTransit mediator and CorrelationId
- Entity Framework core does not work when using masstransit library
- Weird transactional outbox behaviour when running multiple WebApplications with MassTransit in same process
- InboxState.Delivered = null - Transactional Outbox For Consumers
- Using MassTransit to invoke a DurableTaskClient function
- MassTransit creates topics / subscriptions with its default name formatter no matter what configurations
- How do I implement the Request/Response pattern for MassTransit using RabbitMQ Service Bus Plus Filters?
- Is it possible to use MassTransit transactional outbox with multiple db contexts?
- Remove MessageData from repository after successful consumption
- How can we prevent RoutingSlipFaulted to be fired when a single specific RoutingSlipActivity faulted?
- Unable to consume message - MassTransit with ActiveMQ Artemis
- Can we use Redis Stream as message broker with mass transit like mass transit with rabbitMQ or ActiveMQ
- How can my controller action wait and respond the result of my message driven workflow?
Related Questions in SAGA
- Correlating aggregates by Saga ID instead of an additional aggregate root
- redux-saga: tracking multiple async tasks
- Multiple distributed event stores for data governance working together
- Unit testing redux-saga task cancellation
- Can i implement timetolive on nservicebus sagas?
- NServiceBus SagaData persistance issue with NHibernate around List<string>
- Is it possible to lock affinity of a MassTransit saga to a given consumer?
- NServiceBus saga not handling messages on azure
- NServiceBus Use 4.0 Handler in 2.6 saga
- Nservice bus saga ordering
- Error on Customers Service while consuming (Order Service generated) message
- DDD Relate Aggregates in a long process running
- Architecture concerns using minimal aggregates in a long running transaction
- Can a MassTransit Consumer Saga be InitiatedBy the same message(s) that it Orchestrates?
- Waiting for multiple actions before proceeding in redux-saga
Related Questions in ROUTING-SLIP
- How can we prevent RoutingSlipFaulted to be fired when a single specific RoutingSlipActivity faulted?
- MassTransit RoutingSlipActivityCompleted goes into skipped queue
- RoutingSlip not routing back to publisher
- difference of typical usage of request client and RoutingSlip courier in masstransit
- send data to RoutingSlipCompleted consume method from activity
- 'RoutingSlipCompleted' does not contain a definition for 'GetVariable'
- How to split value generating new extra row but leaving blank only one value from the new row in pandas
- Use message retry for courier
- MassTransit message encryption and routing slip events
- How to monitor MassTransit Courier routing slip properly?
- MassTransit - Redeliver message in routing slip activity
- MassTransit - Prioritize RabbitMQ Message on Routing Slip
- Why Compensate method doesn't Call when a consumer thrown exception in MassTransit RouterSlip
- MassTransit: run execute routing-sleep synchronously
- Outbox for routing slip in statemachine?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?

You should have three separate activities, and execute them in order, so that as they succeed individually, they are added to the log. If an activity fails, the previous activities will be compensated.
By having all three calls in a single activity, you're going against the entire reason for having the routing slip and activities.