feat: Add RoutingSlip extension for Wolverine#1823
feat: Add RoutingSlip extension for Wolverine#1823nkz-soft wants to merge 13 commits intoJasperFx:mainfrom
Conversation
- Implement core routing slip pattern with activity execution - Add support for compensation handling - Include middleware for routing slip execution - Add test project with end-to-end test - Set up project structure and dependencies
|
@nkz-soft Hey, it's gonna be a day or two before I get you any useful feedback, but I see you here. |
…andling execution and compensation records - Added RoutingSlipExecutionFailurePolicy to manage failure policies for ExecutionContext messages. - Introduced ActivityTracker to record execution and compensation activities with thread-safe collections. - Included methods for recording, retrieving, and resetting activity records.
|
@nkz-soft I'm trying to get this into 5.15 by the end of the day. 5.16 early next week at worst. Sorry, this is about the worst we've ever done getting a PR done |
|
@jeremydmiller Implemented
Needs To Be Done
|
|
@nkz-soft Hey, I think we need to have a conversation about this and where you want to go. I think I'm leaning toward not wanting to support this in Wolverine proper. Would you want to just keep this as a separate project where you have full control? I don't really recall anyone else wanting a Routing Slip implementation in Wolverine. And all of this can be done more easily in my opinion through a Saga that manages the steps and workflow. I'm concerned in a way because this code strikes me as the exact kind of highly abstracted framework code that ends up being hard to maintain over time. |
|
As I mentioned earlier, we worked with MassTransit's RoutingSlip on one of our projects and I thought it would be nice to implement something similar here. Currently, we're using Saga, so this is essentially my personal pet project. I'm willing to maintain and evolve it. I agree that the code is fairly abstract, but it's less abstract than MT's implementation.😄 I just wanted to maintain backward compatibility with MT as much as possible. I don't see any problem with moving this to a separate project. It isn't currently tied to the core at all, and I hope everything I wanted can be implemented via the core abstractions. |
I used the MT implementation of Routing Slip, but due to a licensing change I started looking for alternatives. This is a first draft of a Routing Slip implementation using a Wolverine extension. I’d appreciate a fresh look perhaps there’s a better way to implement it.