Comments (2)
I added a small extension IMessageHandleContext.LocalSaga
to help with sending a series of commands from message handlers.
Usage is like so:
public void Handle(Commands.DoSomethingComplicated command, IMessageHandlerContext ctx) {
var complicated = await ctx.For<Complicated>().Get(command.ComplicatedId);
await ctx.LocalSaga(async bus => {
var reply = await bus.Request<bool>(new Commands.StartSomething{ ComplicatedId = complicated.Id });
complicated.Success = reply;
});
}
awaiting ctx.LocalSaga will pause the command processing until the saga function is complete.
from aggregates.net.
Working on the feature - syntax is going to be
var saga = ctx.Saga("blah")
.Command<Commands.Allocate>(x => {
x.Id = "blah"
})
.Command<Commands.SetName>(x => {
x.Id= "blah";
x.Name = "Test";
})
.Command<Commands.Activate>(x => {
x.Id = "blah";
})
.OnAbort<Commands.SetException>(x => {
x.Id = "blah";
});
await saga.Start();
Under the covers we'll be running a normal NSB saga which will keep track of the commands already sent and accepted. If any command is rejected the abort commands will be run in order and the originating message will be sent to the error queue
from aggregates.net.
Related Issues (20)
- Migrate to Actions
- Any plan to write a comprehensive documentation HOT 1
- Adding EventStore to my endpoint fails HOT 7
- ProjectionsManager is failing because there's no SSL certificate available. HOT 6
- Isn't there a way to NOT use EventStore? HOT 3
- Error when calling Apply method in the Domain app HOT 6
- How to catch BusinessException in custom built behavior? HOT 14
- Writing to EventStore is taking so much time, sometimes it doesn't work, and events don't reach directly to Application endpoint. HOT 8
- Taking snapshot to speed reading from EventStore HOT 3
- Inheritance in models HOT 1
- Replay all events if application endpoint version upgraded HOT 2
- Sagas Doesn't Work HOT 16
- Setting Correlation Id Can Make NSB Throw HOT 1
- Migrate logging to Microsoft.Extensions.Logging.Abstractions HOT 1
- Add development mode option
- Force Microsoft DI and Logging Infrastructure HOT 2
- Use correct mime type for message content type
- ScopeValidation of DI when in Production Mode HOT 10
- IApplicationUnitOfWork not present in TestableContext HOT 3
- Testing - Child Entity - Multipe Events HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aggregates.net.