<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Clarified CQRS</title>
	<atom:link href="http://www.udidahan.com/2009/12/09/clarified-cqrs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/</link>
	<description>Enterprise Development Expert &#38; SOA Specialist</description>
	<lastBuildDate>Sat, 11 Feb 2012 15:16:10 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Sanket Naik</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37738</link>
		<dc:creator>Sanket Naik</dc:creator>
		<pubDate>Tue, 03 May 2011 15:04:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37738</guid>
		<description>Great Post Udi.</description>
		<content:encoded><![CDATA[<p>Great Post Udi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37681</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 15 Apr 2011 08:49:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37681</guid>
		<description>Brouce,

I use powerpoint.</description>
		<content:encoded><![CDATA[<p>Brouce,</p>
<p>I use powerpoint.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brouce.liu</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37680</link>
		<dc:creator>brouce.liu</dc:creator>
		<pubDate>Fri, 15 Apr 2011 02:23:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37680</guid>
		<description>hi, udi, I&#039;m very interested in your diagram about CQRS.
And would you like to let me know what tool to draw this diagram?

Thanks in advanced.</description>
		<content:encoded><![CDATA[<p>hi, udi, I&#8217;m very interested in your diagram about CQRS.<br />
And would you like to let me know what tool to draw this diagram?</p>
<p>Thanks in advanced.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37656</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 30 Mar 2011 08:10:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37656</guid>
		<description>Joseph,

That would be great - thanks.</description>
		<content:encoded><![CDATA[<p>Joseph,</p>
<p>That would be great &#8211; thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: joseph</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37655</link>
		<dc:creator>joseph</dc:creator>
		<pubDate>Wed, 30 Mar 2011 08:04:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37655</guid>
		<description>Thanks again for this clarification udi, really helpful as usual. 

Mind if someday I translate this article in french and link back to your post ?

best
joseph</description>
		<content:encoded><![CDATA[<p>Thanks again for this clarification udi, really helpful as usual. </p>
<p>Mind if someday I translate this article in french and link back to your post ?</p>
<p>best<br />
joseph</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37653</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Tue, 29 Mar 2011 21:05:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37653</guid>
		<description>Joseph,

I wouldn&#039;t say that performance/scalability are the deciding factors towards choosing CQRS - but they do contribute. The primary property of a system that would make it a good fit for CQRS is whether it is collaborative - ergo multiple users/actors working in parallel on a shared set of data.

It is likely that there are parts of a system that are collaborative, and parts that aren&#039;t. As such, CQRS should only be used for the collaborative parts.</description>
		<content:encoded><![CDATA[<p>Joseph,</p>
<p>I wouldn&#8217;t say that performance/scalability are the deciding factors towards choosing CQRS &#8211; but they do contribute. The primary property of a system that would make it a good fit for CQRS is whether it is collaborative &#8211; ergo multiple users/actors working in parallel on a shared set of data.</p>
<p>It is likely that there are parts of a system that are collaborative, and parts that aren&#8217;t. As such, CQRS should only be used for the collaborative parts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: joseph</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37651</link>
		<dc:creator>joseph</dc:creator>
		<pubDate>Tue, 29 Mar 2011 20:35:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37651</guid>
		<description>Hi Udi

Another question came to my mind: would you recommend CQRS only for application when performance/scalability is of the uttermost importance or more as a pattern applicable to any application, like some intranet one? 

Having watched some of your talks on infoq I kind of had the feeling CQRS so much reducing the domain to its core that it would end up providing value anywhere, but most likely I&#039;m just being over enthusiastic... 

thanks again
best</description>
		<content:encoded><![CDATA[<p>Hi Udi</p>
<p>Another question came to my mind: would you recommend CQRS only for application when performance/scalability is of the uttermost importance or more as a pattern applicable to any application, like some intranet one? </p>
<p>Having watched some of your talks on infoq I kind of had the feeling CQRS so much reducing the domain to its core that it would end up providing value anywhere, but most likely I&#8217;m just being over enthusiastic&#8230; </p>
<p>thanks again<br />
best</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37648</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Mon, 28 Mar 2011 14:37:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37648</guid>
		<description>DavidZ,

If only I had the time :-)</description>
		<content:encoded><![CDATA[<p>DavidZ,</p>
<p>If only I had the time <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DavidZ</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37635</link>
		<dc:creator>DavidZ</dc:creator>
		<pubDate>Thu, 24 Mar 2011 10:00:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37635</guid>
		<description>When wil you pubish a book already :) ? I *think my frustration with CQRS and possibly a lot of posts here is that there really isn&#039;t a bible for CQRS so to speak esspecially in relation to DDD+CQRS.

Please oh please work on a book that will save me a lot of time and headache trying to google cqrs :)</description>
		<content:encoded><![CDATA[<p>When wil you pubish a book already <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ? I *think my frustration with CQRS and possibly a lot of posts here is that there really isn&#8217;t a bible for CQRS so to speak esspecially in relation to DDD+CQRS.</p>
<p>Please oh please work on a book that will save me a lot of time and headache trying to google cqrs <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37596</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 04 Mar 2011 07:15:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37596</guid>
		<description>Thanks for the nudge Joseph :)</description>
		<content:encoded><![CDATA[<p>Thanks for the nudge Joseph <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: joseph</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37594</link>
		<dc:creator>joseph</dc:creator>
		<pubDate>Wed, 02 Mar 2011 14:06:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37594</guid>
		<description>Hi Udi

Thanks a lot for this post, which indeed clarifies the CQRS topic.

You said earlier you would post on Event Sourcing soon, but I didn&#039;t find any related post (apart from the current one). Am I missing something ?

It would be nice to have such a clear explanation on event sourcing, so.

Anyway, thanks a lot :)</description>
		<content:encoded><![CDATA[<p>Hi Udi</p>
<p>Thanks a lot for this post, which indeed clarifies the CQRS topic.</p>
<p>You said earlier you would post on Event Sourcing soon, but I didn&#8217;t find any related post (apart from the current one). Am I missing something ?</p>
<p>It would be nice to have such a clear explanation on event sourcing, so.</p>
<p>Anyway, thanks a lot <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37466</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Thu, 23 Sep 2010 20:38:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37466</guid>
		<description>Maninder,

The technical form of using one-way commands enables scaling writes, and serving reads off of a type of cache has alway sbeen a way to scale queries. All that being said, if users don&#039;t need to collaborate, each one is working on their own data, then you have an easily partitioned domain by user, rather than by separating reads and writes.</description>
		<content:encoded><![CDATA[<p>Maninder,</p>
<p>The technical form of using one-way commands enables scaling writes, and serving reads off of a type of cache has alway sbeen a way to scale queries. All that being said, if users don&#8217;t need to collaborate, each one is working on their own data, then you have an easily partitioned domain by user, rather than by separating reads and writes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: maninder</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37465</link>
		<dc:creator>maninder</dc:creator>
		<pubDate>Thu, 23 Sep 2010 19:57:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37465</guid>
		<description>Udi,
It seems like my last comment was not published. So let me retry hoping it is an idempotent operation :)
With my limited understanding, i see CQRS as a mechanism to scale read and writes. 
Can you please explain how multiple actors collaboratively or highly complex domain can benefit from it GIVEN the constraint &quot;The reads and writes in that application do not need to scale independently&quot;.</description>
		<content:encoded><![CDATA[<p>Udi,<br />
It seems like my last comment was not published. So let me retry hoping it is an idempotent operation <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
With my limited understanding, i see CQRS as a mechanism to scale read and writes.<br />
Can you please explain how multiple actors collaboratively or highly complex domain can benefit from it GIVEN the constraint &#8220;The reads and writes in that application do not need to scale independently&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-3/#comment-37463</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Tue, 21 Sep 2010 19:23:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37463</guid>
		<description>Maninder,

I&#039;d say that if the data does not need to be operated on by multiple actors collaboratively, then you might not need this approach. Highly complex non-collaborative domains may need it as well.</description>
		<content:encoded><![CDATA[<p>Maninder,</p>
<p>I&#8217;d say that if the data does not need to be operated on by multiple actors collaboratively, then you might not need this approach. Highly complex non-collaborative domains may need it as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maninder Batth</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37461</link>
		<dc:creator>Maninder Batth</dc:creator>
		<pubDate>Tue, 21 Sep 2010 15:58:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37461</guid>
		<description>Udi,
When not to use such an approach? 
Should this approach be used for applications that can meet their read objectives through a normalized database structure ?</description>
		<content:encoded><![CDATA[<p>Udi,<br />
When not to use such an approach?<br />
Should this approach be used for applications that can meet their read objectives through a normalized database structure ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Leung</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37458</link>
		<dc:creator>Michael Leung</dc:creator>
		<pubDate>Mon, 20 Sep 2010 01:00:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37458</guid>
		<description>Hi Udi,

Actually, the method is an aggregate root (Stock) method, which can naturally navigate its childs to do calculation. The method has only one responsibility - to calculate the weighted average cost of the root entity.

Anyway, thanks for your insights.

Regards,
Michael Leung</description>
		<content:encoded><![CDATA[<p>Hi Udi,</p>
<p>Actually, the method is an aggregate root (Stock) method, which can naturally navigate its childs to do calculation. The method has only one responsibility &#8211; to calculate the weighted average cost of the root entity.</p>
<p>Anyway, thanks for your insights.</p>
<p>Regards,<br />
Michael Leung</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37455</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 19 Sep 2010 14:00:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37455</guid>
		<description>Michael,

It sounds like that calculation component is doing too much, violating the single responsibility principle.</description>
		<content:encoded><![CDATA[<p>Michael,</p>
<p>It sounds like that calculation component is doing too much, violating the single responsibility principle.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Leung</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37453</link>
		<dc:creator>Michael Leung</dc:creator>
		<pubDate>Thu, 16 Sep 2010 10:44:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37453</guid>
		<description>Hi Udi,

Thanks for your explanation. It so happens that the &quot;calculation component&quot; is one of the stock&#039;s business methods and it is used in commands such as &quot;Create purchase order&quot;. This business method can navigate from itself to its purchase histories, shipments, exchange rates &amp; etc. Because Hibernate will do all the OR mappings, we don&#039;t need to pre-fetch all the required histories, shipments, exchange rates and past them to the &quot;calculation component&quot;. 

For CQRS, do I need to duplicate the business method&#039;s logic to the &quot;calculation component&quot;? (same logic, different implementation because one based on ORM and another is functional component with pre-fetched data sets as parameters)

Regards,
Michael Leung</description>
		<content:encoded><![CDATA[<p>Hi Udi,</p>
<p>Thanks for your explanation. It so happens that the &#8220;calculation component&#8221; is one of the stock&#8217;s business methods and it is used in commands such as &#8220;Create purchase order&#8221;. This business method can navigate from itself to its purchase histories, shipments, exchange rates &amp; etc. Because Hibernate will do all the OR mappings, we don&#8217;t need to pre-fetch all the required histories, shipments, exchange rates and past them to the &#8220;calculation component&#8221;. </p>
<p>For CQRS, do I need to duplicate the business method&#8217;s logic to the &#8220;calculation component&#8221;? (same logic, different implementation because one based on ORM and another is functional component with pre-fetched data sets as parameters)</p>
<p>Regards,<br />
Michael Leung</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37444</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 11 Sep 2010 04:40:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37444</guid>
		<description>Michael,

What you&#039;re describing is handled by a &quot;calculation component&quot;, a pure functional component that doesn&#039;t access any data on its own but is fed data from the outside. The client passes in the data from the persistent view model into the calculation component and displays the results of the calculation. The query itself remains very simple, although the calculation itself may be quite complex.</description>
		<content:encoded><![CDATA[<p>Michael,</p>
<p>What you&#8217;re describing is handled by a &#8220;calculation component&#8221;, a pure functional component that doesn&#8217;t access any data on its own but is fed data from the outside. The client passes in the data from the persistent view model into the calculation component and displays the results of the calculation. The query itself remains very simple, although the calculation itself may be quite complex.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Leung</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37435</link>
		<dc:creator>Michael Leung</dc:creator>
		<pubDate>Thu, 09 Sep 2010 10:58:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37435</guid>
		<description>Udi,

I am practicing DDD and agreed that the query portion (or context) is unnecessarily complex. However, queries are not always simple relational retrievals. Take stock’s weighted average cost as example. It may need to navigate a lot of entities, executing these entities’ methods before arriving at the cost for the stock. The query does involve Business Rules and behaviors exists in Queries, not just in Commands. 

If all unit costs are pre-calculated in the cache, then we may be doing more than necessary. How to deal with this?</description>
		<content:encoded><![CDATA[<p>Udi,</p>
<p>I am practicing DDD and agreed that the query portion (or context) is unnecessarily complex. However, queries are not always simple relational retrievals. Take stock’s weighted average cost as example. It may need to navigate a lot of entities, executing these entities’ methods before arriving at the cost for the stock. The query does involve Business Rules and behaviors exists in Queries, not just in Commands. </p>
<p>If all unit costs are pre-calculated in the cache, then we may be doing more than necessary. How to deal with this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37414</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Thu, 02 Sep 2010 08:06:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37414</guid>
		<description>Maninder,

The other thing (or multiple things) could be in the validation component and/or the controller for the command making use of data in the persistent view model to decide not to send a command. In short, it&#039;s not on the entity and not part of the entity&#039;s interface.

I understand that this doesn&#039;t follow traditional OOAD, but I&#039;ve found it extremely effective.</description>
		<content:encoded><![CDATA[<p>Maninder,</p>
<p>The other thing (or multiple things) could be in the validation component and/or the controller for the command making use of data in the persistent view model to decide not to send a command. In short, it&#8217;s not on the entity and not part of the entity&#8217;s interface.</p>
<p>I understand that this doesn&#8217;t follow traditional OOAD, but I&#8217;ve found it extremely effective.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37413</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Thu, 02 Sep 2010 08:04:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37413</guid>
		<description>Tom,

Some computed values may indeed be persisted in the master db, others which are simple aggregations (like sums) that are only needed for views can be computed without the domain.</description>
		<content:encoded><![CDATA[<p>Tom,</p>
<p>Some computed values may indeed be persisted in the master db, others which are simple aggregations (like sums) that are only needed for views can be computed without the domain.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maninder Batth</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37412</link>
		<dc:creator>Maninder Batth</dc:creator>
		<pubDate>Wed, 01 Sep 2010 22:39:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37412</guid>
		<description>Udi,
Thank you for the response. 
I am understanding your response as follows :-
Put volatile(prone to change) business logic in the domain object and put logic that does not change frequently in some &quot;Thing&quot;. Can you please describe what would be that &quot;Thing&quot; that would contain non volatile rules? 
Perhaps an example can clarify my question.
Consider an entity, with a certain behavior. The behavior would be satisfied by either volatile rules, or non volatile rules or combination of both.
The behavior is described by an Entity&#039;s interface.
So are you implying that the implementation of that interface should be split into 2 objects, a domain object that manages volatile aspects and some &quot;Thing&quot; that manages non volatile rules related to entity&#039;s responsibility?


What confuses me is that i am used to thinking in a traditional OOAD. Hence, i would typically assign responsibility to where it belongs, regardless of the frequency of change. The internal implementation will care about frequency of change and hence perhaps externalizing to  scripting, rules, db etc, but thats internal details.</description>
		<content:encoded><![CDATA[<p>Udi,<br />
Thank you for the response.<br />
I am understanding your response as follows :-<br />
Put volatile(prone to change) business logic in the domain object and put logic that does not change frequently in some &#8220;Thing&#8221;. Can you please describe what would be that &#8220;Thing&#8221; that would contain non volatile rules?<br />
Perhaps an example can clarify my question.<br />
Consider an entity, with a certain behavior. The behavior would be satisfied by either volatile rules, or non volatile rules or combination of both.<br />
The behavior is described by an Entity&#8217;s interface.<br />
So are you implying that the implementation of that interface should be split into 2 objects, a domain object that manages volatile aspects and some &#8220;Thing&#8221; that manages non volatile rules related to entity&#8217;s responsibility?</p>
<p>What confuses me is that i am used to thinking in a traditional OOAD. Hence, i would typically assign responsibility to where it belongs, regardless of the frequency of change. The internal implementation will care about frequency of change and hence perhaps externalizing to  scripting, rules, db etc, but thats internal details.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37407</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Wed, 01 Sep 2010 13:56:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37407</guid>
		<description>On the contrary, I know the computed fields persisted in the ‘persistent view model’
But I assume they are not persisted on the “master db” 

So in order to initialize the &#039;persistent view model&#039; for the FIRST TIME,I need  to use the domain model In order to compute all computed fields


Thanks</description>
		<content:encoded><![CDATA[<p>On the contrary, I know the computed fields persisted in the ‘persistent view model’<br />
But I assume they are not persisted on the “master db” </p>
<p>So in order to initialize the &#8216;persistent view model&#8217; for the FIRST TIME,I need  to use the domain model In order to compute all computed fields</p>
<p>Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-2/#comment-37406</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 01 Sep 2010 12:00:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1149#comment-37406</guid>
		<description>Tom,

Why do you assume that values computed by the domain model aren&#039;t persisted there? Arguably these computed values are actually the most interesting things in the domain representing most closely the language of the domain experts.

If an update of the persistent view model failed (threw an exception), it would be retried a configurable number of times and then sent off to an error queue, which an administrator is likely monitoring. This tends to happen most often when installing a new version of something as the kinks are worked out of the system - it very rarely happens otherwise.</description>
		<content:encoded><![CDATA[<p>Tom,</p>
<p>Why do you assume that values computed by the domain model aren&#8217;t persisted there? Arguably these computed values are actually the most interesting things in the domain representing most closely the language of the domain experts.</p>
<p>If an update of the persistent view model failed (threw an exception), it would be retried a configurable number of times and then sent off to an error queue, which an administrator is likely monitoring. This tends to happen most often when installing a new version of something as the kinks are worked out of the system &#8211; it very rarely happens otherwise.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

