Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<blockquote> <p><em>"Now with a strict DDD in place any call for data will be routed through the Business layer and the Data Access layer."</em> </p> </blockquote> <p>I don't believe this is true, and it's certainly not practical. I believe this should read:</p> <blockquote> <p>Now with strict DDD in place, any call for a <strong>transaction</strong> will be routed through the business layer and the data access layer.</p> </blockquote> <p>There is nothing that says you can't call the data access layer directly in order to fetch whatever data you need to display on the screen. It is only when you need to amend data that you need to invoke your domain model that is designed based on its behavior. In my opinion this is a key distinction. If you route everything through your domain model you will have three problems:</p> <ol> <li>Time - it'll take you MUCH longer to implement functionality, for no benefit.</li> <li>Model Design - your domain model will be bent out of shape in order to meet the needs querying rather than behavior.</li> <li>Performance - not because of an extra layer, but because you wont be able to get the aggregated data from your model as quickly as you can directly from a query. i.e. Consider the total value of all orders placed for a particular customer - its much faster to write a query for this than to fetch all order entities for the customer, iterate over and sum.</li> </ol> <p>As Chriseyre2000 has mentioned, CQRS aims at solving these exact issues.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload