Comments (7)
I just coded up this example: https://github.com/rebus-org/Rebus/blob/master/Rebus.Tests/Examples/SagaSendsMessagesToItself.cs
It demonstrates how an in-mem saga can send a bunch of messages to itself, which will not actually be sent until the saga data is saved. Moreover, it shows that all subsequent messages get dispatched with optimistic concurrency.
Could you maybe take a look at the example to see where your code differs?
from rebus.
Thank you, I will investigate
from rebus.
One thing at a glance before I get into running the two examples, I use "bus.Send" not "bus.SendLocal" not sure if that makes any difference. The messages sent are routed to another bus's handler, which uses bus.Send() to route messages back to be handled by this saga.
from rebus.
await bus.SendLocal(...);
just means that the the bus will
await bus.Send(...);
with itself as the destination. If you were to explicitly configure the equivalent, it would be something like
services.AddRebus(
configure => configure
.Transport(t => t.Use(..., "my-queue"))
.Routing(r => r.TypeBased().Map<SomeMessage>("my-queue"))
);
// (...)
await bus.Send(new SomeMessage());
from rebus.
Hi @dazinator , did you figure out how your code differed from my example?
from rebus.
Hi @dazinator , did you figure out how your code differed from my example?
I haven't got back into the issue again just yet sorry, but this does seem like a difference.. your example uses SendLocal to route back to the same bus. My test has two buses, and my sage sends a message which is routed to the other bus (different input queue name) which handles it and sends a message back to my saga bus input queue. Both buses are sharing an in memory network created at the start of the test.
from rebus.
Yeah ok, but as mentioned in the previous comment, it doesn't affect how the message is sent, only where it is sent to.
All other things being equal, await bus.SendLocal(..)
should not take as long as await bus.Send(..)
followed by await bus.Reply(...)
in the other end, so to try to reproduce your issue, await bus.SendLocal(..)
would seem like an sharper bet.
from rebus.
Related Issues (20)
- How to mock MessageContext.Current in outgoing step? HOT 2
- Performance Question HOT 3
- Release notes or migration guides for breaking changes when new major is released HOT 1
- Question: Manually acknowledge the message in RabbitMQ HOT 6
- Redis transport integration HOT 5
- Question: Kafka transport ? 😢 HOT 1
- FailFastException and 2nd level retries behaviour change between v7 and v8 HOT 8
- Configuration for web application (load balanced) with multiple subscribers HOT 2
- Spoof Rebus from Java, C++ etc. HOT 5
- Error handler not having access to the original exceptions HOT 7
- Issue when using both RetryStrategy and EnableEncryption, IFailed<message> handlers not called HOT 2
- Add additional TFM's so package dependencies can be optimised
- In net standard 2.1 Eliminate the dependency on System.Threading.AccessControl
- Outbox transaction always commits with second level retries enabled HOT 1
- OpenTelemetry Support HOT 1
- Could not get .NET type named during Deserialize HOT 1
- Canceling/Aborting long running Handler HOT 3
- Message duplication after message lock expiration HOT 2
- Saga Pattern with Rebus HOT 1
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 rebus.