<?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: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Comments on: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#224; la Greg Young</title>
	<atom:link href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-la-greg-young</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mobygeek</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64452</link>
		<dc:creator>mobygeek</dc:creator>
		<pubDate>Mon, 28 Nov 2011 22:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64452</guid>
		<description>hi Mark,

though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.

my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself - aha that s like that  but why? - is it normal? or am missing something? like having no clue? :(
 
thank you.</description>
		<content:encoded><![CDATA[<p>hi Mark,</p>
<p>though i am late to the party, since it s like about month i have been deliberating on building an application based on cqrs+event sourcing. here your example is been total brainer. many thanks.</p>
<p>my self not an expert an average coder who is attempting to shift to architectural  context beyond all routine coding. with this entry i d like emphasize on your implementation with directbus (servicebus). how you come up with such idea. i mean is there any example how to build such architecture. as such you came with componentizing as router+message using queues. i know you said that purpose just demonstrative but i found it concise. however i continuously finding myself &#8211; aha that s like that  but why? &#8211; is it normal? or am missing something? like having no clue? <img src='http://elegantcode.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
 <br />
thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Yokoyama</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-5/#comment-64359</link>
		<dc:creator>Daniel Yokoyama</dc:creator>
		<pubDate>Tue, 18 Oct 2011 21:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-64359</guid>
		<description>I don&#039;t know... I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#039;s not domain logic on it, viewmodel because its data is contextualized in the command like an &quot;action&quot; on mvc) being used as a DTO to be sent to the Domain Layer.
Well, I really need to read it all over again. Maybe I&#039;m thinking like that just because of the didatics of the exercise.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know&#8230; I may not be that experient about CQRS (Even less about Event Store Pattern) but looking at this implementation it just looks like an anemic viewmodel (anemic because there&#8217;s not domain logic on it, viewmodel because its data is contextualized in the command like an &#8220;action&#8221; on mvc) being used as a DTO to be sent to the Domain Layer.<br />
Well, I really need to read it all over again. Maybe I&#8217;m thinking like that just because of the didatics of the exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63708</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Sat, 26 Feb 2011 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63708</guid>
		<description>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#039;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.

When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#039;ve just described above. Tantilizingly I sort of can, but I&#039;m at risk of blurring the distinction between read and write here. Any thoughts?</description>
		<content:encoded><![CDATA[<p>This is fascinating stuff. Imagine I had a system which managed traffic lights. The user interface consisted of a map with the lights at intersections showing whether they were green or red. There are two things here that I&#8217;m curious about. First, the lights will be changing according to a script, when they change will be written to the reporting database database, but not with the intention of reporting the current state. Second, the user may click a traffic light to change its state.</p>
<p>When I read through the above I could see the whole thing applying perfectly to a web app, but not the sort of app I&#8217;ve just described above. Tantilizingly I sort of can, but I&#8217;m at risk of blurring the distinction between read and write here. Any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kiss</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-63695</link>
		<dc:creator>David Kiss</dc:creator>
		<pubDate>Mon, 21 Feb 2011 10:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-63695</guid>
		<description>&quot;@Nigel King 
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&quot;

If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? 

For example, you add a new required field to an event or change an event&#039;s field from name to title? If this happened, you wouldn&#039;t be able to replay those events, would you?

Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#039;m not familiar with data mining, so there&#039;s a chance there&#039;s no need for such queries)</description>
		<content:encoded><![CDATA[<p>&#8220;@Nigel King<br />
Well with Event Sourcing each event will be persisted, but they are not serialized to fields in a DB, instead the whole event is serialized into a single column in the DB&#8221;</p>
<p>If you serialize the whole event into a single column in DB, what happens if after some time you refactor the event object in your code? </p>
<p>For example, you add a new required field to an event or change an event&#8217;s field from name to title? If this happened, you wouldn&#8217;t be able to replay those events, would you?</p>
<p>Also, if the whole event is stored in a single DB column, you will not be able to run data mining queries like: show me all the transfer money events where the transfered amount is within a range? (I&#8217;m not familiar with data mining, so there&#8217;s a chance there&#8217;s no need for such queries)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53496</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53496</guid>
		<description>&lt;a href=&quot;#comment-53495&quot; rel=&quot;nofollow&quot;&gt;@Ertugrul&lt;/a&gt; 
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#039;managed&#039; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.

Hope that helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53495" rel="nofollow">@Ertugrul</a><br />
You are correct the Event Store is INSERT and READ only, no events will ever be changed or deleted. But an Aggregate Root would not get a repository to retrieve another Aggregate Root from the Event Store. But an Aggregate can contain other Entities if that is needed for domain behavior, but these are then &#8216;managed&#8217; by the Aggregate Root and retrieved by retrieving the Aggregate Root. If you need state from other Aggregate Roots then you would use a service that uses the reporting repository to query the reporting side for this state, this is because the domain repository can only retrieve by Id, so no querying.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ertugrul</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53495</link>
		<dc:creator>Ertugrul</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53495</guid>
		<description>Hi, it looks like there is an arrow from the &quot;Event Store&quot; back to the &quot;Repository&quot; and another one labeled &quot;Aggregate&quot; from &quot;Repository&quot; to the &quot;Domain Model&quot;. Then the Event Store is INSERT and READ only but not &quot;write only&quot;?
Does this mean that we are actually retrieving other Aggregates from the repository by not &quot;querying&quot; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</description>
		<content:encoded><![CDATA[<p>Hi, it looks like there is an arrow from the &#8220;Event Store&#8221; back to the &#8220;Repository&#8221; and another one labeled &#8220;Aggregate&#8221; from &#8220;Repository&#8221; to the &#8220;Domain Model&#8221;. Then the Event Store is INSERT and READ only but not &#8220;write only&#8221;?<br />
Does this mean that we are actually retrieving other Aggregates from the repository by not &#8220;querying&#8221; but by recreating them from the event store via the Repository, whenever we need them during Domain Logic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53450</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53450</guid>
		<description>&lt;a href=&quot;#comment-53148&quot; rel=&quot;nofollow&quot;&gt;@marko&lt;/a&gt; 
Sorry for the late reply, your post got somewhat forgotten :)

In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).

But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post ;)

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53148" rel="nofollow">@marko</a><br />
Sorry for the late reply, your post got somewhat forgotten <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In this case you could choose to implement a view model that assumes certain behavior from the domain. So it will do some basic checks to verify that the command is ok, then after sending the command and receiving a OK back (command either receive an Ok or Exception back) it assumes that the order is added and it will add it to its local representation of the list with orders (if it matches the filter criteria).</p>
<p>But to be honest there are other options as well all depending on how critical it is that you need the last data in each client vs only the client that submitted it. Anyway surely a whole new post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DDDSample 0.6 &#171; Simon says&#8230; architecture!</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53218</link>
		<dc:creator>DDDSample 0.6 &#171; Simon says&#8230; architecture!</dc:creator>
		<pubDate>Fri, 29 Jan 2010 06:32:11 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53218</guid>
		<description>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</description>
		<content:encoded><![CDATA[<p>[...] implementation. The most import ones come from Udi Dahan and Greg Young (which is best described by Mark Nijhof). My own implementation is somewhat close to Udi&#8217;s ideas (at least I hope so;-). What I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53203</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53203</guid>
		<description>&lt;a href=&quot;#comment-53201&quot; rel=&quot;nofollow&quot;&gt;@John Davidson&lt;/a&gt; 
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</description>
		<content:encoded><![CDATA[<p><a href="#comment-53201" rel="nofollow">@John Davidson</a><br />
Sure I can and I believe my reply was arguing his point of view in the exact same manner as he was making his point. Btw you know your IP is being recorded Mr_Simple?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Davidson</title>
		<link>http://elegantcode.com/2009/11/11/cqrs-la-greg-young/comment-page-4/#comment-53201</link>
		<dc:creator>John Davidson</dc:creator>
		<pubDate>Thu, 28 Jan 2010 18:00:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/11/11/cqrs-la-greg-young/#comment-53201</guid>
		<description>Apparently you can&#039;t take rational, justified, discussion that may not agree with your position.  Mr_Simple was simply stating good luck finding a client that will pay you to program this heavyweight solution.</description>
		<content:encoded><![CDATA[<p>Apparently you can&#8217;t take rational, justified, discussion that may not agree with your position.  Mr_Simple was simply stating good luck finding a client that will pay you to program this heavyweight solution.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

