Comments (6)
Hi @mathysd, thanks for the question. And yes you’re right, in that scenario the IHandleRequestsError
is very weak and is NOT the way to (I’ve adjusted the talk based on feedback as it was a bit misleading). The original intention was to keep it simple but as you correctly notice it’s not really the right solution.
I wrote a blog post about this very topic detailing all scenarios and what’s the optimal approach: https://milestone.topics.it/2019/05/02/safety-first.html
Let me know what you think.
from all-our-aggregates-are-wrong-demos.
Thansk for the blog post! I read the other posts on viewmodel composition as well.
What’s reason for making the composition gateway responsible for "orchestrating" between the services? You could have the sales domain raising events when the quantity of an item has changed.
from all-our-aggregates-are-wrong-demos.
Thanks for the blog post! I read the other posts on viewmodel composition as well.
Great, if you have questions, please, do not hesitate to raise follow up issues. Or comment on the blogpost if comments are still open.
What’s reason for making the composition gateway responsible for "orchestrating" between the services? You could have the sales domain raising events when the quantity of an item has changed.
It’s mostly, it not only, a coupling reason. You don’t want services that are not dependent on each other to become coupled. If Sales is the one that publishes information about quantity changes then Sales ends up being coupled to any subscriber, making Sales evolution harder and harder the larger this coupling surface is.
Does it make sense?
from all-our-aggregates-are-wrong-demos.
Yes that makes sense. To me the composition gateway sounds like a backend-for-frontend. So any other composition gateway would have to include this behavior as well.
from all-our-aggregates-are-wrong-demos.
My experience with backend-for-frontend architecture(s) is kinda limited, I’ve focused myself on Composition Gateways. Anyway I guess you’re right, a CG is a kind of backend-for-frontend.
from all-our-aggregates-are-wrong-demos.
I recently merged a change to move all write attempts to use messaging: #101
Based on that I'm going to close this issue. Feel free to re-open and raise another one if you have any further question. Thanks!
from all-our-aggregates-are-wrong-demos.
Related Issues (20)
- Stop using HTTP from IHandleRequests implementations HOT 3
- Show how to remove items from the cart
- Show how to create a new product to sell
- Move to generic hosting
- Update to .NET Core 3.1
- [QUESTION] How to implement an archiving service for order history? HOT 6
- How to handle change of cart item quantity? HOT 7
- Do the demo's service API projects require NSB endpoints? HOT 3
- Can't find an example with CleanupFailedCartRequest HOT 1
- Integration testing
- Update to new ServiceComposer API
- Question: If Shipping had a cost requirement which service owns that price? HOT 2
- Update to use the new NServiceBus.TransactionalSession
- README is outdate
- Move to PostgreSQL
- Move to RabbitMQ
- Use docker-compose to allow creating the required containers for RabbitMQ and PostgreSQL
- Move to Dev Containers to enable Codespaces support
- Craft some documentation that explains the role of each project
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 all-our-aggregates-are-wrong-demos.