Comments (1)
Okay, so here's some more thoughts. I vote that we completely ignore the delayed message feature from FubuMVC just for the moment to simplify the MVP. A "transport" in Jasper will need to be able to send messages to other nodes and be able to listen for messages received from other nodes. In FubuMVC, we had the concept of a "reply channel" for a given message and transport that gave the receiving end of the message a means to call back to the original node with any required responses. That caused some trouble in the fubu timeline, so we might reconsider the approach.
To implement the in memory transport, there are a handful of interfaces I just pushed into Jasper that are somewhat simplified versions of the same thing in FubuMVC that a transport type will need to implement:
IChannel
- runtime support for sending or receiving messages from a single, logical queueITransport
- "knows" how to build channels for a given queue Uri and will have some logic to be determined later on how to connect a replay channel. Just assume that the ITransport signatures around the Reply Uri/Channel will change as we learn more.IMessageCallback
- for a received message, this gives the rest of the message handling pipeline a way to tell the underlying queue to pop the message off the queue, requeu it, move it to error queues, etc.
I said "static" up above, but I think this should end up being scoped to the running application itself. What we can do in testing scenarios, is to share an instance of the in memory transport between different JasperRuntime
's in order to do testing completely in memory.
from jasper.
Related Issues (20)
- Middleware convention for Marten command handlers
- Users should be able to make subscriptions against Marten events as they're being captured
- ICommandInvoker<T> for fast "Mediator" approaches in ASP.Net Core pages
- Exception handling overhaul for 2.0
- Add "exception message contains" filtering to the error handling fluent interface HOT 1
- Quick configuration policy to mark all endpoints as being durable in one line of code HOT 1
- Saga Simplification for 2.0 HOT 1
- ICommandBus.EnqueueAsync() should accept a cancellation token HOT 1
- Evaluate whether pausing or circuit breaker on local queue is legal
- Durability agent should be aware of paused listeners HOT 2
- JasperOptions should be sealed
- Make inbox/outbox nomenclature consistent across the code
- The Rabbit MQ conventional routing needs an allow and/or deny list feature
- Documentation on runtime pipeline
- Add a sample in documentation of bootstrapping a headless service in .NET 6
- Sagas need to support a static `Start()` method that returns the Saga state
- Should be legal for "NotFound" methods on sagas to be static HOT 1
- Per endpoint JSON serialization customization HOT 1
- Misnamed Project Causing *nix Build Failure HOT 1
- System.IO.FileNotFoundException: Could not load file or assembly 'JasperFx.Core, Version=1.4.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified. 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 jasper.