<?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 &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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 &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comments on: CQRS &#8211; Domain state</title>
	<atom:link href="http://elegantcode.com/2009/12/08/cqrs-domain-state/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqrs-domain-state</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: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52361</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Mon, 04 Jan 2010 06:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52361</guid>
		<description>Nice. Thanks for clearing that up.</description>
		<content:encoded><![CDATA[<p>Nice. Thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-2/#comment-52320</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 03 Jan 2010 00:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52320</guid>
		<description>&lt;a href=&quot;#comment-52273&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#039;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.

So the creation of these snapshot can be done completely outside the normal process, that&#039;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.

Hope this helps.</description>
		<content:encoded><![CDATA[<p><a href="#comment-52273" rel="nofollow">@Roy</a><br />
Ah I see where you are coming from now. The snapshots are only used to speed-up the loading of the AR&#8217;s so whenever a AR is requested it will first look in the identity map, if not found it will request it from the event store. The event store will first request an available snapshot and load that into the AR then after that it will load all the events that have occurred after the creation of the snapshot bringing it to the latest state.</p>
<p>So the creation of these snapshot can be done completely outside the normal process, that&#8217;s why the deamon. The snapshot are not needed at all, it just speeds up the loading. I am going to spend a post on this topic as well.</p>
<p>Hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52273</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Sat, 02 Jan 2010 01:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52273</guid>
		<description>I think the word &quot;daemon&quot; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#039;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</description>
		<content:encoded><![CDATA[<p>I think the word &#8220;daemon&#8221; in the 3rd comment threw me off. To me, that means a background service. I was tring to make sense of why you would run a background service to commit a snapshot of an aggregate. I don&#8217;t think I understand the purpose of a snapshot. I was thinking that snapshots are only taken after a commit command is given by the client.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52248</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Fri, 01 Jan 2010 13:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52248</guid>
		<description>&lt;a href=&quot;#comment-52247&quot; rel=&quot;nofollow&quot;&gt;@Roy&lt;/a&gt; 
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post :)</description>
		<content:encoded><![CDATA[<p><a href="#comment-52247" rel="nofollow">@Roy</a><br />
I am not sure how you got that impression? The identity map determins how long an AR stays in memory, but that is not discussed in this post <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-52247</link>
		<dc:creator>Roy</dc:creator>
		<pubDate>Fri, 01 Jan 2010 12:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-52247</guid>
		<description>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</description>
		<content:encoded><![CDATA[<p>So your domain is basically in memory at all times. Meaning, none of your AR are disposed. You constantly add new ones in memory and save the state of those AR from time-to-time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51252</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51252</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
It looks like Udi is on the same line as you http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874 saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
It looks like Udi is on the same line as you <a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874" rel="nofollow">http://www.udidahan.com/2009/12/09/clarified-cqrs/comment-page-1/#comment-36874</a> saying that some information does not need to be in the domain model at all, independently of the way to build it. Meaning putting much more responsibilities on the reporting side then I imagined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51247</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51247</guid>
		<description>&lt;a href=&quot;#comment-51241&quot; rel=&quot;nofollow&quot;&gt;@Aaron Jensen&lt;/a&gt; 
Aaron, you caught me in a moment of &quot;a snapshot captures full state&quot; thoughts here. I probably didn&#039;t get rid of all the &quot;traditional&quot; ways of thinking yet. You&#039;ve got an absolutely valid point there. Thanks for that!</description>
		<content:encoded><![CDATA[<p><a href="#comment-51241" rel="nofollow">@Aaron Jensen</a><br />
Aaron, you caught me in a moment of &#8220;a snapshot captures full state&#8221; thoughts here. I probably didn&#8217;t get rid of all the &#8220;traditional&#8221; ways of thinking yet. You&#8217;ve got an absolutely valid point there. Thanks for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Jensen</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51241</link>
		<dc:creator>Aaron Jensen</dc:creator>
		<pubDate>Thu, 10 Dec 2009 02:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51241</guid>
		<description>&lt;a href=&quot;#comment-51210&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Snapshotting doesn&#039;t change the need to persist the state in question in this post. We&#039;re simply discussing state that is irrelevant to business logic. You wouldn&#039;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#039;s the only place it lives.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51210" rel="nofollow">@Allard Buijze</a><br />
Snapshotting doesn&#8217;t change the need to persist the state in question in this post. We&#8217;re simply discussing state that is irrelevant to business logic. You wouldn&#8217;t need it ever, so no need to store it in the snapshot. The only place its needed is in reporting, and as such, that&#8217;s the only place it lives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Nijhof</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51225</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Wed, 09 Dec 2009 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51225</guid>
		<description>&lt;a href=&quot;#comment-51222&quot; rel=&quot;nofollow&quot;&gt;@Allard Buijze&lt;/a&gt; 
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#039;t actually need to load all events. (I&#039;ll discuss this in more details in the next CQRS post).</description>
		<content:encoded><![CDATA[<p><a href="#comment-51222" rel="nofollow">@Allard Buijze</a><br />
Yuo are correct the domain generates the snapshot and is the only one that knows the structure. But you can savely delete them as any-time, that just means that now all the events will be loaded again. Now you would probably have a daemon in the background generating snapshots, so hopefully when the AR is needed you don&#8217;t actually need to load all events. (I&#8217;ll discuss this in more details in the next CQRS post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allard Buijze</title>
		<link>http://elegantcode.com/2009/12/08/cqrs-domain-state/comment-page-1/#comment-51222</link>
		<dc:creator>Allard Buijze</dc:creator>
		<pubDate>Wed, 09 Dec 2009 16:06:51 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/12/08/cqrs-domain-state/#comment-51222</guid>
		<description>&lt;a href=&quot;#comment-51215&quot; rel=&quot;nofollow&quot;&gt;@Mark Nijhof&lt;/a&gt; 
I am eager to read your next post. I&#039;ve enjoyed the previous ones, anyway (although your C# code samples use constructs that we don&#039;t have in Java ;-) )

My idea was that the &quot;something&quot; that generates the snapshot event would be the domain object itself. In order to do that, it should know what (for example) the last known address was.</description>
		<content:encoded><![CDATA[<p><a href="#comment-51215" rel="nofollow">@Mark Nijhof</a><br />
I am eager to read your next post. I&#8217;ve enjoyed the previous ones, anyway (although your C# code samples use constructs that we don&#8217;t have in Java <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  )</p>
<p>My idea was that the &#8220;something&#8221; that generates the snapshot event would be the domain object itself. In order to do that, it should know what (for example) the last known address was.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

