<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments for Udi Dahan - The Software Simplist</title>
	<link>http://www.udidahan.com</link>
	<description>.Net Development Expert &#38; SOA Specialist</description>
	<pubDate>Tue, 06 Jan 2009 02:38:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
		<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by Cloudomo. &#8250; Using REST to Scale</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35929</link>
		<dc:creator>Cloudomo. &#8250; Using REST to Scale</dc:creator>
		<pubDate>Mon, 05 Jan 2009 08:06:36 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35929</guid>
		<description>[...] Dahan, a big name in the field of building large scale web systems, shares some of his experiences with scaling a weather service. Although the lesson he learned might not apply to every other system out there, it provides a good [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Dahan, a big name in the field of building large scale web systems, shares some of his experiences with scaling a weather service. Although the lesson he learned might not apply to every other system out there, it provides a good [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on [Podcast] REST + Messaging = Enterprise Solutions by 20,000 Fathoms Deeper into REST for WCF&#8230; &#171; {Programming} &#38; Life</title>
		<link>http://www.udidahan.com/2008/03/16/podcast-rest-messaging-enterprise-solutions/#comment-35928</link>
		<dc:creator>20,000 Fathoms Deeper into REST for WCF&#8230; &#171; {Programming} &#38; Life</dc:creator>
		<pubDate>Mon, 05 Jan 2009 01:09:26 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/03/16/podcast-rest-messaging-enterprise-solutions/#comment-35928</guid>
		<description>[...] interestingly aside the links on that blog, a post on that page to a Udi Dahan podcast which goes deep into the definition, usefulness and appropriateness of REST particularly dealing [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] interestingly aside the links on that blog, a post on that page to a Udi Dahan podcast which goes deep into the definition, usefulness and appropriateness of REST particularly dealing [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35922</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 03 Jan 2009 23:21:33 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35922</guid>
		<description>Ofer,

I've found that when big numbers are involved, it's important to get percentages accurate by measuring to understand the exact scope of any impact.

Next, we're careful not to throw the baby out with the bath water. The business is the one that decides what's worse, the extra expense of providing 100% of the users with always accurate data, or N users with degraded functionality. I have yet to see a business scaling to this many users choosing accuracy over profitability.

Finally, we look at ways to minimize the degradation of functionality - for instance, by comparing the user's time zone with that of the location where we the cookie says they are. If there is a discrepancy, we refresh the location based on the current IP. This solves the problem for users travelling between time zones, further decreasing the number of affected users.

Rinse and repeat.

And thank you for your kind words.</description>
		<content:encoded><![CDATA[<p>Ofer,</p>
<p>I&#8217;ve found that when big numbers are involved, it&#8217;s important to get percentages accurate by measuring to understand the exact scope of any impact.</p>
<p>Next, we&#8217;re careful not to throw the baby out with the bath water. The business is the one that decides what&#8217;s worse, the extra expense of providing 100% of the users with always accurate data, or N users with degraded functionality. I have yet to see a business scaling to this many users choosing accuracy over profitability.</p>
<p>Finally, we look at ways to minimize the degradation of functionality - for instance, by comparing the user&#8217;s time zone with that of the location where we the cookie says they are. If there is a discrepancy, we refresh the location based on the current IP. This solves the problem for users travelling between time zones, further decreasing the number of affected users.</p>
<p>Rinse and repeat.</p>
<p>And thank you for your kind words.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by stefan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35921</link>
		<dc:creator>stefan</dc:creator>
		<pubDate>Sat, 03 Jan 2009 16:48:32 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35921</guid>
		<description>squid ... check out varnish ( http://varnish.projects.linpro.no/ ) !
cheers</description>
		<content:encoded><![CDATA[<p>squid &#8230; check out varnish ( <a href="http://varnish.projects.linpro.no/" rel="nofollow">http://varnish.projects.linpro.no/</a> ) !<br />
cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by Ofer Heijmans</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35919</link>
		<dc:creator>Ofer Heijmans</dc:creator>
		<pubDate>Fri, 02 Jan 2009 23:55:44 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35919</guid>
		<description>Udi,
Very nice innovative approach. I like it.
My comment is however, that in doing what you are proposing the end user is the one that is ultimately going to suffer. 

The moment you bring in caching (location + weather data) you immediately create potential problems in the user experience - a good example is the "are you not in Londong?" thing that is there to actually solve a user experience problem of a user NOT being where you think he is. There are of course many other potential problems where a solution is not as easy (wrong weather data etc..).

My question is: Since these potential problems are going to affect a very minor set of customers, lets say no more then 0.5% of the customers. However, as you begin with these methods because of scalability issues as you wrote, having 10 million customers or more would mean that at least 50,000 customers would get affected. 

How would you weigh the benefit of the added scalability with the "cost" of customer issues for 50,000 unhappy customers or more for which you hurt their experience compared the the tradition "web method" approach?

Thanks - Love your articles - 
Ofer</description>
		<content:encoded><![CDATA[<p>Udi,<br />
Very nice innovative approach. I like it.<br />
My comment is however, that in doing what you are proposing the end user is the one that is ultimately going to suffer. </p>
<p>The moment you bring in caching (location + weather data) you immediately create potential problems in the user experience - a good example is the &#8220;are you not in Londong?&#8221; thing that is there to actually solve a user experience problem of a user NOT being where you think he is. There are of course many other potential problems where a solution is not as easy (wrong weather data etc..).</p>
<p>My question is: Since these potential problems are going to affect a very minor set of customers, lets say no more then 0.5% of the customers. However, as you begin with these methods because of scalability issues as you wrote, having 10 million customers or more would mean that at least 50,000 customers would get affected. </p>
<p>How would you weigh the benefit of the added scalability with the &#8220;cost&#8221; of customer issues for 50,000 unhappy customers or more for which you hurt their experience compared the the tradition &#8220;web method&#8221; approach?</p>
<p>Thanks - Love your articles -<br />
Ofer</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35917</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 02 Jan 2009 21:13:50 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35917</guid>
		<description>Colin,

You could do that, but IIS would be a really poor choice for it. Squid would be preferable.</description>
		<content:encoded><![CDATA[<p>Colin,</p>
<p>You could do that, but IIS would be a really poor choice for it. Squid would be preferable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35916</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 02 Jan 2009 21:12:38 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35916</guid>
		<description>Dan,

These are the same concepts - absolutely.</description>
		<content:encoded><![CDATA[<p>Dan,</p>
<p>These are the same concepts - absolutely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by Colin Jack</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35915</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Fri, 02 Jan 2009 14:05:10 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35915</guid>
		<description>@Libor
On caching, the other option is to use Web caching within your own boundaries. If you've got layered resources then there's no reason that you can't use Web based caching of these more granular resources within your own boundaries.</description>
		<content:encoded><![CDATA[<p>@Libor<br />
On caching, the other option is to use Web caching within your own boundaries. If you&#8217;ve got layered resources then there&#8217;s no reason that you can&#8217;t use Web based caching of these more granular resources within your own boundaries.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by Dan Malcolm</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35913</link>
		<dc:creator>Dan Malcolm</dc:creator>
		<pubDate>Fri, 02 Jan 2009 12:28:59 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35913</guid>
		<description>Nice. Some interested related reading: 

http://www.martinfowler.com/bliki/SegmentationByFreshness.html 

I really like the idea of composing a page from separate chunks of  (cached) HTML / JSON / XML that are assembled client-side.

Based on these ideas, AJAX UI enhancements could be used to show a subset of weather data on the home page.</description>
		<content:encoded><![CDATA[<p>Nice. Some interested related reading: </p>
<p><a href="http://www.martinfowler.com/bliki/SegmentationByFreshness.html" rel="nofollow">http://www.martinfowler.com/bliki/SegmentationByFreshness.html</a> </p>
<p>I really like the idea of composing a page from separate chunks of  (cached) HTML / JSON / XML that are assembled client-side.</p>
<p>Based on these ideas, AJAX UI enhancements could be used to show a subset of weather data on the home page.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35911</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 31 Dec 2008 21:25:48 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35911</guid>
		<description>Libor,

On 1,2,3 and 4 - that's actually how it's being done. The blog post was an intentional simplification to get the idea across.

On your point "Facebook has more users then this application and they are using caching tier extensively quite happily"

Well, I guess it depends on what they're using it for :)

When it comes to their graph analytics, yes, that's all being done in memory. However, that's their core business. Weather is not this company's core business.

Also, in an "either-or" comparison, this kind of web caching costs much less than a caching tier. That's not to say we're in an "either-or" situation, we can do both. That way, we shed much of the load onto the web and have much less to deal with in our caching tier.

When "everything expires", you still don't have all of your users requesting at the same time. The result of serving the response to one user's request will be cached after the previous expiry for the next set of users - it's not an issue.

And thanks for your detailed comment. It's always great hearing from you.</description>
		<content:encoded><![CDATA[<p>Libor,</p>
<p>On 1,2,3 and 4 - that&#8217;s actually how it&#8217;s being done. The blog post was an intentional simplification to get the idea across.</p>
<p>On your point &#8220;Facebook has more users then this application and they are using caching tier extensively quite happily&#8221;</p>
<p>Well, I guess it depends on what they&#8217;re using it for <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>When it comes to their graph analytics, yes, that&#8217;s all being done in memory. However, that&#8217;s their core business. Weather is not this company&#8217;s core business.</p>
<p>Also, in an &#8220;either-or&#8221; comparison, this kind of web caching costs much less than a caching tier. That&#8217;s not to say we&#8217;re in an &#8220;either-or&#8221; situation, we can do both. That way, we shed much of the load onto the web and have much less to deal with in our caching tier.</p>
<p>When &#8220;everything expires&#8221;, you still don&#8217;t have all of your users requesting at the same time. The result of serving the response to one user&#8217;s request will be cached after the previous expiry for the next set of users - it&#8217;s not an issue.</p>
<p>And thanks for your detailed comment. It&#8217;s always great hearing from you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, REST, and Pub/Sub by udidahan</title>
		<link>http://www.udidahan.com/2008/12/15/soa-rest-and-pubsub/#comment-35909</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 31 Dec 2008 21:10:00 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/15/soa-rest-and-pubsub/#comment-35909</guid>
		<description>Hamsa,

Will do :)</description>
		<content:encoded><![CDATA[<p>Hamsa,</p>
<p>Will do <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by Reflective Perspective - Chris Alcock &#187; The Morning Brew #254</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35907</link>
		<dc:creator>Reflective Perspective - Chris Alcock &#187; The Morning Brew #254</dc:creator>
		<pubDate>Wed, 31 Dec 2008 11:19:55 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35907</guid>
		<description>[...] Building Super-Scalable Web Systems with REST - Udi Dahan talks about how REST services can help you to build the most highly scalable web systems, focusing on how the protocol provides a number of useful features that really help. Also well worth checking out are the caching documents mentioned in the first comment. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Building Super-Scalable Web Systems with REST - Udi Dahan talks about how REST services can help you to build the most highly scalable web systems, focusing on how the protocol provides a number of useful features that really help. Also well worth checking out are the caching documents mentioned in the first comment. [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, REST, and Pub/Sub by Hamsa</title>
		<link>http://www.udidahan.com/2008/12/15/soa-rest-and-pubsub/#comment-35906</link>
		<dc:creator>Hamsa</dc:creator>
		<pubDate>Wed, 31 Dec 2008 03:12:45 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/15/soa-rest-and-pubsub/#comment-35906</guid>
		<description>I love to see more posts on this topic. I want to extend this idea to Master data (Customer, Supplier, Item etc) synchronization in a entriprise environment. In the organizations i have worked with it is implemented in pub sub model with pooling architecture.</description>
		<content:encoded><![CDATA[<p>I love to see more posts on this topic. I want to extend this idea to Master data (Customer, Supplier, Item etc) synchronization in a entriprise environment. In the organizations i have worked with it is implemented in pub sub model with pooling architecture.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by Libor</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35905</link>
		<dc:creator>Libor</dc:creator>
		<pubDate>Tue, 30 Dec 2008 23:13:26 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35905</guid>
		<description>Hi Udi,
when I read article I was wandering whether there is possibility to do solution with slightly different approach.

Let assume following:
1) You will group weather data from several cities into logical groups (i.e. in GB you might do that according administrative regions - South West England, West Midlands, Yorkshire and the Humber, etc. For example Czech Republic as small country might be represented by only one logical group while USA might get logical groups according counties or metro regions, etc.).

2) Single logical group contains weather data for several cities - like South West England has data for Plymouth, Bristol, Gloucester, etc.).

3) User location is identified on its login as you have described above and saved via cookie. Location definition is additionally extended with identification of region (or logical group for that matter) under which user belongs (i.e. user from Bristol will get not only cookie for Bristol but also region "South West England" maybe via some index/ID). This ID is saved into cookie as well.

4) When weather data are requested then provider site send out weather data for entire region via ID and not via specific city name. User presentation will than might select detail weather info in case city name is explicitly listed in delivered data or entire region if city/town/village is not available from list.

Logical group of weather data seems to me might then get into cashing tier inside datacenter (under assumption weather data are reasonably sized) as resource consumption shall not be that big if assumed 1) "(traditional) follow-the-sun/moon" user access pattern and 2) user base is usually not distributed evenly across all countries/regions but rather "packed" in certain distinct geo-locations. Moreover you are mentioned there is multiple datacenters and therefore each datacenter might server different user geo-location which shall farther decrease resource use.

I would appreciate if you can more elaborate on cases where is reasonable to use caching tier as opposite to cases where web cache infrastructure helps well (for example Facebook has more users then this application and they are using caching tier extensively quite happily).

I'm also wondering how you can cope with situation where all "web based caching" is "not working or is expired at the same time" and designed application must serve requests directly. Would not make sense to add some kind of cashing tier to the final application anyway? It does not seem the REST might help here.

Many thanks for answers.

Regards,
Libor</description>
		<content:encoded><![CDATA[<p>Hi Udi,<br />
when I read article I was wandering whether there is possibility to do solution with slightly different approach.</p>
<p>Let assume following:<br />
1) You will group weather data from several cities into logical groups (i.e. in GB you might do that according administrative regions - South West England, West Midlands, Yorkshire and the Humber, etc. For example Czech Republic as small country might be represented by only one logical group while USA might get logical groups according counties or metro regions, etc.).</p>
<p>2) Single logical group contains weather data for several cities - like South West England has data for Plymouth, Bristol, Gloucester, etc.).</p>
<p>3) User location is identified on its login as you have described above and saved via cookie. Location definition is additionally extended with identification of region (or logical group for that matter) under which user belongs (i.e. user from Bristol will get not only cookie for Bristol but also region &#8220;South West England&#8221; maybe via some index/ID). This ID is saved into cookie as well.</p>
<p>4) When weather data are requested then provider site send out weather data for entire region via ID and not via specific city name. User presentation will than might select detail weather info in case city name is explicitly listed in delivered data or entire region if city/town/village is not available from list.</p>
<p>Logical group of weather data seems to me might then get into cashing tier inside datacenter (under assumption weather data are reasonably sized) as resource consumption shall not be that big if assumed 1) &#8220;(traditional) follow-the-sun/moon&#8221; user access pattern and 2) user base is usually not distributed evenly across all countries/regions but rather &#8220;packed&#8221; in certain distinct geo-locations. Moreover you are mentioned there is multiple datacenters and therefore each datacenter might server different user geo-location which shall farther decrease resource use.</p>
<p>I would appreciate if you can more elaborate on cases where is reasonable to use caching tier as opposite to cases where web cache infrastructure helps well (for example Facebook has more users then this application and they are using caching tier extensively quite happily).</p>
<p>I&#8217;m also wondering how you can cope with situation where all &#8220;web based caching&#8221; is &#8220;not working or is expired at the same time&#8221; and designed application must serve requests directly. Would not make sense to add some kind of cashing tier to the final application anyway? It does not seem the REST might help here.</p>
<p>Many thanks for answers.</p>
<p>Regards,<br />
Libor</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Building Super-Scalable Web Systems with REST by Colin Jack</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35899</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Tue, 30 Dec 2008 09:01:12 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35899</guid>
		<description>Really good stuff, I'd also recommend anyone reading this take a look at this guide to caching: http://www.mnot.net/cache_docs/</description>
		<content:encoded><![CDATA[<p>Really good stuff, I&#8217;d also recommend anyone reading this take a look at this guide to caching: <a href="http://www.mnot.net/cache_docs/" rel="nofollow">http://www.mnot.net/cache_docs/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Domain Events - Take 2 by udidahan</title>
		<link>http://www.udidahan.com/2008/08/25/domain-events-take-2/#comment-35869</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 24 Dec 2008 05:07:35 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/08/25/domain-events-take-2/#comment-35869</guid>
		<description>Daniel,

Removing the [ThreadStatic] attribute causes a bug - an action on one thread by user A can call be into a different action previously registered by a different thread by user B.

The overall guidance is that the domain model with its associated events should not be called within the web app itself. Rather, the domain model should be hosted in its own process, an application server if you will, which the web app sends messages to.

Hope that helps.</description>
		<content:encoded><![CDATA[<p>Daniel,</p>
<p>Removing the [ThreadStatic] attribute causes a bug - an action on one thread by user A can call be into a different action previously registered by a different thread by user B.</p>
<p>The overall guidance is that the domain model with its associated events should not be called within the web app itself. Rather, the domain model should be hosted in its own process, an application server if you will, which the web app sends messages to.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Domain Events - Take 2 by Daniel Fernandes</title>
		<link>http://www.udidahan.com/2008/08/25/domain-events-take-2/#comment-35868</link>
		<dc:creator>Daniel Fernandes</dc:creator>
		<pubDate>Tue, 23 Dec 2008 09:44:01 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/08/25/domain-events-take-2/#comment-35868</guid>
		<description>@Udi: There is a problem with [ThreadStatic] attribute with Web applications. 
I came across circumstances where the list of actions was null because I guess part of the HTTP request was handled by one thread and the rest by another one.
I've removed this attribute and it's fine now.</description>
		<content:encoded><![CDATA[<p>@Udi: There is a problem with [ThreadStatic] attribute with Web applications.<br />
I came across circumstances where the list of actions was null because I guess part of the HTTP request was handled by one thread and the rest by another one.<br />
I&#8217;ve removed this attribute and it&#8217;s fine now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Scaling Long Running Web Services by udidahan</title>
		<link>http://www.udidahan.com/2008/07/30/scaling-long-running-web-services/#comment-35866</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 20 Dec 2008 08:55:30 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/07/30/scaling-long-running-web-services/#comment-35866</guid>
		<description>Simon,

"Passive kinds of data", like countries, regions, etc were done in a similar manner.

The main difference was that they had a well known URI ahead of time as well as longer cache timeouts. Regardless, when that data was changed on the server, it would also update that resource/URI.</description>
		<content:encoded><![CDATA[<p>Simon,</p>
<p>&#8220;Passive kinds of data&#8221;, like countries, regions, etc were done in a similar manner.</p>
<p>The main difference was that they had a well known URI ahead of time as well as longer cache timeouts. Regardless, when that data was changed on the server, it would also update that resource/URI.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Scaling Long Running Web Services by Simon Segal</title>
		<link>http://www.udidahan.com/2008/07/30/scaling-long-running-web-services/#comment-35865</link>
		<dc:creator>Simon Segal</dc:creator>
		<pubDate>Sat, 20 Dec 2008 05:29:37 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/07/30/scaling-long-running-web-services/#comment-35865</guid>
		<description>Udi

Love this approach. Were all the UI requests including more passive kinds of data (enumerated lists of regions for example) also handled by this single architectural approach in this scenario?</description>
		<content:encoded><![CDATA[<p>Udi</p>
<p>Love this approach. Were all the UI requests including more passive kinds of data (enumerated lists of regions for example) also handled by this single architectural approach in this scenario?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Command Query Separation and SOA by udidahan</title>
		<link>http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/#comment-35863</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 19 Dec 2008 20:58:06 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/#comment-35863</guid>
		<description>Steve,

Re: How scalable would this be if large numbers of clients were requesting data in this way especially over slow connnections? 

This is the way clients that don't use pub/sub do things anyway :)

The answer to the rest of your question deserves a full blog post of its own, if not more than one :)</description>
		<content:encoded><![CDATA[<p>Steve,</p>
<p>Re: How scalable would this be if large numbers of clients were requesting data in this way especially over slow connnections? </p>
<p>This is the way clients that don&#8217;t use pub/sub do things anyway <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The answer to the rest of your question deserves a full blog post of its own, if not more than one <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Asynchronous, High-Performance Login for Web Farms by udidahan</title>
		<link>http://www.udidahan.com/2007/11/10/asynchronous-high-performance-login-for-web-farms/#comment-35862</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 19 Dec 2008 20:07:16 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/11/10/asynchronous-high-performance-login-for-web-farms/#comment-35862</guid>
		<description>Jai,

Here's some:

If you can ensure that the call will be local, you can often make it synchronous.

If you  suspect that a call will be remote, you should prefer to make it asynchronous / non-blocking.</description>
		<content:encoded><![CDATA[<p>Jai,</p>
<p>Here&#8217;s some:</p>
<p>If you can ensure that the call will be local, you can often make it synchronous.</p>
<p>If you  suspect that a call will be remote, you should prefer to make it asynchronous / non-blocking.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Asynchronous, High-Performance Login for Web Farms by Jai Lalwani</title>
		<link>http://www.udidahan.com/2007/11/10/asynchronous-high-performance-login-for-web-farms/#comment-35860</link>
		<dc:creator>Jai Lalwani</dc:creator>
		<pubDate>Fri, 19 Dec 2008 06:33:26 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/11/10/asynchronous-high-performance-login-for-web-farms/#comment-35860</guid>
		<description>Udi,
Do you've any such guidelines, when to and not to make things asynchronous.

Regards,
Jai</description>
		<content:encoded><![CDATA[<p>Udi,<br />
Do you&#8217;ve any such guidelines, when to and not to make things asynchronous.</p>
<p>Regards,<br />
Jai</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to create fully encapsulated Domain Models by udidahan</title>
		<link>http://www.udidahan.com/2008/02/29/how-to-create-fully-encapsulated-domain-models/#comment-35859</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 17 Dec 2008 20:16:23 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/02/29/how-to-create-fully-encapsulated-domain-models/#comment-35859</guid>
		<description>Pete,

You can expose collections as IEnumerable&lt;T&gt; so that there won't be any Add/Remove methods available.

On your NHibernate specific question, you wouldn't do anything different in the mapping to work with these interfaces. Just use Ayende's repository wrapper around it.</description>
		<content:encoded><![CDATA[<p>Pete,</p>
<p>You can expose collections as IEnumerable<t> so that there won&#8217;t be any Add/Remove methods available.</p>
<p>On your NHibernate specific question, you wouldn&#8217;t do anything different in the mapping to work with these interfaces. Just use Ayende&#8217;s repository wrapper around it.</t></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Web Scalability Slides and Code by udidahan</title>
		<link>http://www.udidahan.com/2008/06/06/web-scalability-slides-and-code/#comment-35858</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 17 Dec 2008 20:11:41 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/06/06/web-scalability-slides-and-code/#comment-35858</guid>
		<description>Jai,

Sending to your email.</description>
		<content:encoded><![CDATA[<p>Jai,</p>
<p>Sending to your email.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, REST, and Pub/Sub by udidahan</title>
		<link>http://www.udidahan.com/2008/12/15/soa-rest-and-pubsub/#comment-35857</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 17 Dec 2008 20:08:03 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/15/soa-rest-and-pubsub/#comment-35857</guid>
		<description>Mike,

I guess I should have qualified my meaning of "pub/sub" in this diagram.

When describing business services which publish events, I refer to the fact that they are not dependent upon the logical subscribers. Whether the actual data delivery is pub/sub at the network level, uses a subscription list, or client-polling is a separate (but not unimportant) concern.

One of the advantages of using this design for data which many subscribers might need is that we can leverage the caching behaviors of the internet to save on bandwidth. 

All the options you outlined are also viable and technical tradeoffs need to be made between them and the design I described - a good topic for another post :)</description>
		<content:encoded><![CDATA[<p>Mike,</p>
<p>I guess I should have qualified my meaning of &#8220;pub/sub&#8221; in this diagram.</p>
<p>When describing business services which publish events, I refer to the fact that they are not dependent upon the logical subscribers. Whether the actual data delivery is pub/sub at the network level, uses a subscription list, or client-polling is a separate (but not unimportant) concern.</p>
<p>One of the advantages of using this design for data which many subscribers might need is that we can leverage the caching behaviors of the internet to save on bandwidth. </p>
<p>All the options you outlined are also viable and technical tradeoffs need to be made between them and the design I described - a good topic for another post <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Command Query Separation and SOA by Steve Evers</title>
		<link>http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/#comment-35856</link>
		<dc:creator>Steve Evers</dc:creator>
		<pubDate>Tue, 16 Dec 2008 23:21:45 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/#comment-35856</guid>
		<description>In the article you showed that the query component could be moved to the client ['Instead of a star-schema OLAP product, we might simply store the published data in memory on the client.']  However wouldn't this mean that the client would initially have to request the whole dataset as the data would be lost every time the client or app was restarted (or when a new client comes online)?  How scalable would this be if large numbers of clients were requesting data in this way especially over slow connnections? 

The client could save the information to disk, however they may also be disconnected or off for long periods of time. You mentioned in your recent article 'Lost Notifications? No Problem.' that ['Publishers have no choice but to throw away messages after a certain period of time.'] What would you suggest in this situation (a differential query, P2P) or force the server to maintain the messages indefinitely (eg Outlook and Exchange)?</description>
		<content:encoded><![CDATA[<p>In the article you showed that the query component could be moved to the client [&#8217;Instead of a star-schema OLAP product, we might simply store the published data in memory on the client.&#8217;]  However wouldn&#8217;t this mean that the client would initially have to request the whole dataset as the data would be lost every time the client or app was restarted (or when a new client comes online)?  How scalable would this be if large numbers of clients were requesting data in this way especially over slow connnections? </p>
<p>The client could save the information to disk, however they may also be disconnected or off for long periods of time. You mentioned in your recent article &#8216;Lost Notifications? No Problem.&#8217; that [&#8217;Publishers have no choice but to throw away messages after a certain period of time.&#8217;] What would you suggest in this situation (a differential query, P2P) or force the server to maintain the messages indefinitely (eg Outlook and Exchange)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to create fully encapsulated Domain Models by Pete Grazaitis</title>
		<link>http://www.udidahan.com/2008/02/29/how-to-create-fully-encapsulated-domain-models/#comment-35855</link>
		<dc:creator>Pete Grazaitis</dc:creator>
		<pubDate>Tue, 16 Dec 2008 21:44:52 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/02/29/how-to-create-fully-encapsulated-domain-models/#comment-35855</guid>
		<description>I know that by default the public exposure of Properties for NHibernate ORM allows for easy adoption of the Anemic anti-pattern.

By locking down the set's to internal,private, or protected you can give NHibernate special set access via the proxy but keep the entities better encapsulated.

However, I have noticed that for collections, like Lists/Bags we may lock down the setter but leave the get public.  The problem here is that I can then add/remove items directly from the collection and avoid any Add/Remove methods that employ business logic.

Do you have a recommended solution to avoiding this possibility?  My guess is that you would make the mapping use field level access and avoid a Property altogether.  

My next issue, is NHibernate specific, so I apologize if this is outside the scope.  If the desired solution is field level access, how would this work if I define my class as an interface within the mapper with concrete classes defined as subclasses?  Would I have to define that particular property on every subclass?</description>
		<content:encoded><![CDATA[<p>I know that by default the public exposure of Properties for NHibernate ORM allows for easy adoption of the Anemic anti-pattern.</p>
<p>By locking down the set&#8217;s to internal,private, or protected you can give NHibernate special set access via the proxy but keep the entities better encapsulated.</p>
<p>However, I have noticed that for collections, like Lists/Bags we may lock down the setter but leave the get public.  The problem here is that I can then add/remove items directly from the collection and avoid any Add/Remove methods that employ business logic.</p>
<p>Do you have a recommended solution to avoiding this possibility?  My guess is that you would make the mapping use field level access and avoid a Property altogether.  </p>
<p>My next issue, is NHibernate specific, so I apologize if this is outside the scope.  If the desired solution is field level access, how would this work if I define my class as an interface within the mapper with concrete classes defined as subclasses?  Would I have to define that particular property on every subclass?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Web Scalability Slides and Code by Jai Lalwani</title>
		<link>http://www.udidahan.com/2008/06/06/web-scalability-slides-and-code/#comment-35854</link>
		<dc:creator>Jai Lalwani</dc:creator>
		<pubDate>Tue, 16 Dec 2008 08:57:38 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/06/06/web-scalability-slides-and-code/#comment-35854</guid>
		<description>Both links are broken. Can u pls. send it across to my email jail*****@gmail.com [email removed to prevent spamming]</description>
		<content:encoded><![CDATA[<p>Both links are broken. Can u pls. send it across to my email jail*****@gmail.com [email removed to prevent spamming]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, REST, and Pub/Sub by mike lorengo</title>
		<link>http://www.udidahan.com/2008/12/15/soa-rest-and-pubsub/#comment-35851</link>
		<dc:creator>mike lorengo</dc:creator>
		<pubDate>Mon, 15 Dec 2008 15:56:16 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/15/soa-rest-and-pubsub/#comment-35851</guid>
		<description>How does this accomplish Pub/Sub? The client must still initiate a request, now it's a RESTful GET.

Some options for this could be
1) Using Comet/Long Polling (http://delicious.com/mikelor/comet)
2) Using XMPP to Push Events (http://ajaxian.com/archives/beyond-rest-xmpp-pubsub)
3) Creating a Provider on Gnip (http://www.gnipcentral.com)
4) Something else, perhaps using Azure's ServiceBus (http://www.microsoft.com/azure/servicebus.mspx)

-=mike</description>
		<content:encoded><![CDATA[<p>How does this accomplish Pub/Sub? The client must still initiate a request, now it&#8217;s a RESTful GET.</p>
<p>Some options for this could be<br />
1) Using Comet/Long Polling (http://delicious.com/mikelor/comet)<br />
2) Using XMPP to Push Events (http://ajaxian.com/archives/beyond-rest-xmpp-pubsub)<br />
3) Creating a Provider on Gnip (http://www.gnipcentral.com)<br />
4) Something else, perhaps using Azure&#8217;s ServiceBus (http://www.microsoft.com/azure/servicebus.mspx)</p>
<p>-=mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on [Podcast] Message Ordering: Is it Cost Effective? by Self-Contained Events and SOA</title>
		<link>http://www.udidahan.com/2008/01/01/podcast-message-ordering-is-it-cost-effective/#comment-35844</link>
		<dc:creator>Self-Contained Events and SOA</dc:creator>
		<pubDate>Sat, 13 Dec 2008 23:35:15 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/01/01/podcast-message-ordering-is-it-cost-effective/#comment-35844</guid>
		<description>[...] Related Content [Podcast] Message Ordering - Is it cost effective? [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Related Content [Podcast] Message Ordering - Is it cost effective? [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Lost Notifications? No Problem. by Ian Robinson</title>
		<link>http://www.udidahan.com/2008/12/07/lost-notifications-no-problem/#comment-35838</link>
		<dc:creator>Ian Robinson</dc:creator>
		<pubDate>Sun, 07 Dec 2008 21:25:34 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/12/07/lost-notifications-no-problem/#comment-35838</guid>
		<description>Hi Udi

I think this is a great illustration of tailoring solutions to real consumer needs, which is the primary driver behind consumer-driven contracts. As a provider it may not be possible to offer a one-size-fits-all solution that meets the needs of each and every consumer - so specialize on a case-by-case basis, but in each case do "just enough" to meet real as opposed to imagined needs. Or, and this was the first motivation for CDC, if you do have to provide a one-size-fits-all contract, fit the identifiable aggregate needs, and nothing more.

When I started with CDC, it was for me really about creating and maintaining message schemas that matched the aggregate needs of several consumers - that is, a one-size-fits-all schema, but nothing gold-plated, just something with no more and no less than what was needed. We communicated consumer expectations using tests and assertions - XPath, Schematron, and more recently a representation-format-agnostic DSL (ie. expectations in this DSL can be transformed into assertions against XML, JSON, YAML, form-encoded name-value pairs, etc). By having consumer teams give these assertions and tests to provider teams, we helped providers build into their own test suites and continuous integration environments an understanding of how their services were actually being used. If tests were kept up-to-date, teams could then track their schema footprint and identify possibly redundant elements. Where we were able to do this early enough in the service development lifecycle, these programmatic expectations helped drive out a service contract "by example".

So I guess CDC started out as a way to help the one-size-fits-all mentality do the simplest thing that could possibly work, whilst at the same time providing a basis for evolving a service as new expectations and consumer needs were identified and came online. I'm always on the lookout for practices and techniques that allow us to do just enough today - even in the context of SOA - whilst maintaining a duty of care to the overall lifetime of a system, and this seemed to help.

CDC then, in its original form was quite modest, being concerned mainly with schema and a desire to contain proliferation - ie. not stamp out consumer-specific instances of a message but instead provide a minimally complete single instance. But with experience I've learnt there is a case for specializing what a provider has to offer on a consumer-by-consumer basis - and I think this is an equally, if not more, interesting real-world application of the idea. I remember Jesus Rodriguez did something with the WCF LOB adapters along these lines quite some time ago. Your varying the publication rate, message size and transport per consumer is another good case in point. Inside ThoughtWorks, Jim Webber and I did something similar with a client at the beginning of the year. As with your case, it involved BI. Recognizing that BI consumers have quite different needs - and capabilities - from "transactional" consumers, we created a specialized ETL-friendly interface to our service that extended and clarified our business-meaningful service contract in line with a real-world need. As with what you describe, consumer expectations, including quality-of-service expectations, shape the service ecosystem to the problem at hand, rather than compromising the solution by adapting the problem to a narrow, ostensibly consistent but less-than-useful architectural or technical vision.

Hope this is of some help. On a more general note, your blog and articles have been enormously useful in shaping, testing and refining my own approach to delivering on SOA initiatives over the last few years. Over and against a certain 3-layer-application-architecture-blown-out-to-distributed-proportions school of SOA, your writing, together with Bill Poole's stuff, which I think I probably found through your blog, steers a far more valuable course.

Kind regards

ian</description>
		<content:encoded><![CDATA[<p>Hi Udi</p>
<p>I think this is a great illustration of tailoring solutions to real consumer needs, which is the primary driver behind consumer-driven contracts. As a provider it may not be possible to offer a one-size-fits-all solution that meets the needs of each and every consumer - so specialize on a case-by-case basis, but in each case do &#8220;just enough&#8221; to meet real as opposed to imagined needs. Or, and this was the first motivation for CDC, if you do have to provide a one-size-fits-all contract, fit the identifiable aggregate needs, and nothing more.</p>
<p>When I started with CDC, it was for me really about creating and maintaining message schemas that matched the aggregate needs of several consumers - that is, a one-size-fits-all schema, but nothing gold-plated, just something with no more and no less than what was needed. We communicated consumer expectations using tests and assertions - XPath, Schematron, and more recently a representation-format-agnostic DSL (ie. expectations in this DSL can be transformed into assertions against XML, JSON, YAML, form-encoded name-value pairs, etc). By having consumer teams give these assertions and tests to provider teams, we helped providers build into their own test suites and continuous integration environments an understanding of how their services were actually being used. If tests were kept up-to-date, teams could then track their schema footprint and identify possibly redundant elements. Where we were able to do this early enough in the service development lifecycle, these programmatic expectations helped drive out a service contract &#8220;by example&#8221;.</p>
<p>So I guess CDC started out as a way to help the one-size-fits-all mentality do the simplest thing that could possibly work, whilst at the same time providing a basis for evolving a service as new expectations and consumer needs were identified and came online. I&#8217;m always on the lookout for practices and techniques that allow us to do just enough today - even in the context of SOA - whilst maintaining a duty of care to the overall lifetime of a system, and this seemed to help.</p>
<p>CDC then, in its original form was quite modest, being concerned mainly with schema and a desire to contain proliferation - ie. not stamp out consumer-specific instances of a message but instead provide a minimally complete single instance. But with experience I&#8217;ve learnt there is a case for specializing what a provider has to offer on a consumer-by-consumer basis - and I think this is an equally, if not more, interesting real-world application of the idea. I remember Jesus Rodriguez did something with the WCF LOB adapters along these lines quite some time ago. Your varying the publication rate, message size and transport per consumer is another good case in point. Inside ThoughtWorks, Jim Webber and I did something similar with a client at the beginning of the year. As with your case, it involved BI. Recognizing that BI consumers have quite different needs - and capabilities - from &#8220;transactional&#8221; consumers, we created a specialized ETL-friendly interface to our service that extended and clarified our business-meaningful service contract in line with a real-world need. As with what you describe, consumer expectations, including quality-of-service expectations, shape the service ecosystem to the problem at hand, rather than compromising the solution by adapting the problem to a narrow, ostensibly consistent but less-than-useful architectural or technical vision.</p>
<p>Hope this is of some help. On a more general note, your blog and articles have been enormously useful in shaping, testing and refining my own approach to delivering on SOA initiatives over the last few years. Over and against a certain 3-layer-application-architecture-blown-out-to-distributed-proportions school of SOA, your writing, together with Bill Poole&#8217;s stuff, which I think I probably found through your blog, steers a far more valuable course.</p>
<p>Kind regards</p>
<p>ian</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, EDA, and CEP a winning combo by Lost Notifications? No Problem.</title>
		<link>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35837</link>
		<dc:creator>Lost Notifications? No Problem.</dc:creator>
		<pubDate>Sun, 07 Dec 2008 09:47:09 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35837</guid>
		<description>[...] More in depth example on events and pub/sub between services [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] More in depth example on events and pub/sub between services [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Additional Logic Required For Service Autonomy by Lost Notifications? No Problem.</title>
		<link>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35836</link>
		<dc:creator>Lost Notifications? No Problem.</dc:creator>
		<pubDate>Sun, 07 Dec 2008 09:46:41 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35836</guid>
		<description>[...] Additional logic required for service autonomy [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Additional logic required for service autonomy [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Durable Messaging Dilemmas by Lost Notifications? No Problem.</title>
		<link>http://www.udidahan.com/2008/07/17/durable-messaging-dilemmas/#comment-35835</link>
		<dc:creator>Lost Notifications? No Problem.</dc:creator>
		<pubDate>Sun, 07 Dec 2008 09:46:13 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/07/17/durable-messaging-dilemmas/#comment-35835</guid>
		<description>[...] Durable messaging dilemmas [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Durable messaging dilemmas [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on [Podcast] Business and Autonomous Components in SOA by Colin Jack</title>
		<link>http://www.udidahan.com/2006/08/28/podcast-business-and-autonomous-components-in-soa/#comment-35829</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Sun, 23 Nov 2008 14:24:46 +0000</pubDate>
		<guid>http://www.udidahan.com/2006/08/28/podcast-business-and-autonomous-components-in-soa/#comment-35829</guid>
		<description>Just listened to this again, really superb. I'd like to read/hear a lot more about this process and whether its changed much in the past 2 years. 

In particular I think taking a simple example (such as in http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/) and breaking it down into automonomus/business components would really make this stuff concrete.</description>
		<content:encoded><![CDATA[<p>Just listened to this again, really superb. I&#8217;d like to read/hear a lot more about this process and whether its changed much in the past 2 years. </p>
<p>In particular I think taking a simple example (such as in <a href="http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/" rel="nofollow">http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/</a>) and breaking it down into automonomus/business components would really make this stuff concrete.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Intentions and Interfaces by udidahan</title>
		<link>http://www.udidahan.com/2008/11/17/intentions-and-interfaces/#comment-35828</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 21 Nov 2008 20:36:02 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/17/intentions-and-interfaces/#comment-35828</guid>
		<description>Ram,

Glad you liked it.
If/when Microsoft makes it available online, I'll definitely link to it.</description>
		<content:encoded><![CDATA[<p>Ram,</p>
<p>Glad you liked it.<br />
If/when Microsoft makes it available online, I&#8217;ll definitely link to it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, EDA, and CEP a winning combo by udidahan</title>
		<link>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35827</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 21 Nov 2008 20:20:37 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35827</guid>
		<description>Mário,

Glad you liked it.
And never underestimate the power of the lone ranger :)</description>
		<content:encoded><![CDATA[<p>Mário,</p>
<p>Glad you liked it.<br />
And never underestimate the power of the lone ranger <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Intentions and Interfaces by Ram</title>
		<link>http://www.udidahan.com/2008/11/17/intentions-and-interfaces/#comment-35826</link>
		<dc:creator>Ram</dc:creator>
		<pubDate>Fri, 21 Nov 2008 12:43:10 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/17/intentions-and-interfaces/#comment-35826</guid>
		<description>Hello Udi,

Nice presentation and thanks for sharing it. Can I get audio part of this presentation. Appreciate all your sharing and keep up the great work.

Thanks
Ram</description>
		<content:encoded><![CDATA[<p>Hello Udi,</p>
<p>Nice presentation and thanks for sharing it. Can I get audio part of this presentation. Appreciate all your sharing and keep up the great work.</p>
<p>Thanks<br />
Ram</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, EDA, and CEP a winning combo by Mário Rui da Costa</title>
		<link>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35825</link>
		<dc:creator>Mário Rui da Costa</dc:creator>
		<pubDate>Thu, 20 Nov 2008 10:32:48 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35825</guid>
		<description>Hello,

Congratulations, your post is the clearest view relating the combined use of SOA and EDA principles for Information systems specification I have ever seen. I am a "lonesome cowboy" fighting in the arena of a Telco operator and talking alone about EDA in the last years. Your clear objective view of the benefits of EDA + SOA and their complementary role will be determinant to open some minds around here. Thanks.
Mário Rui da Costa
 of</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>Congratulations, your post is the clearest view relating the combined use of SOA and EDA principles for Information systems specification I have ever seen. I am a &#8220;lonesome cowboy&#8221; fighting in the arena of a Telco operator and talking alone about EDA in the last years. Your clear objective view of the benefits of EDA + SOA and their complementary role will be determinant to open some minds around here. Thanks.<br />
Mário Rui da Costa<br />
 of</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Intentions and Interfaces by 2008 November 18 - Links for today &#171; My (almost) Daily Links</title>
		<link>http://www.udidahan.com/2008/11/17/intentions-and-interfaces/#comment-35823</link>
		<dc:creator>2008 November 18 - Links for today &#171; My (almost) Daily Links</dc:creator>
		<pubDate>Tue, 18 Nov 2008 09:51:14 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/17/intentions-and-interfaces/#comment-35823</guid>
		<description>[...] Dahans Intentions and Interfaces presentation is now available for [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Dahans Intentions and Interfaces presentation is now available for [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Intentions and Interfaces by Lasse Eskildsen</title>
		<link>http://www.udidahan.com/2008/11/17/intentions-and-interfaces/#comment-35822</link>
		<dc:creator>Lasse Eskildsen</dc:creator>
		<pubDate>Mon, 17 Nov 2008 20:41:45 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/17/intentions-and-interfaces/#comment-35822</guid>
		<description>I just realized I have four more pictures of the same slide on my phone - you must really have touched my inner architect with that one :-)</description>
		<content:encoded><![CDATA[<p>I just realized I have four more pictures of the same slide on my phone - you must really have touched my inner architect with that one <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on User Management Sample by udidahan</title>
		<link>http://www.udidahan.com/2008/11/12/user-management-sample/#comment-35821</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 15 Nov 2008 21:25:44 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/12/user-management-sample/#comment-35821</guid>
		<description>Daniel, Ben,

I'm not sure if the TechEd guys will make the recording publicly available, but you can hear some of the content from the podcast I did at TechEd USA.

You can find that &lt;a href="http://www.udidahan.com/2008/06/19/podcast-highly-scalable-web-architectures/" rel="nofollow"&gt;here&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>Daniel, Ben,</p>
<p>I&#8217;m not sure if the TechEd guys will make the recording publicly available, but you can hear some of the content from the podcast I did at TechEd USA.</p>
<p>You can find that <a href="http://www.udidahan.com/2008/06/19/podcast-highly-scalable-web-architectures/" rel="nofollow">here</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on [Presentation] Reliability, Scalability, and Availability by udidahan</title>
		<link>http://www.udidahan.com/2008/09/25/presentation-reliability-scalability-and-availability/#comment-35820</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 15 Nov 2008 21:22:43 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/25/presentation-reliability-scalability-and-availability/#comment-35820</guid>
		<description>Sunny,

The webcast is now online.

I've posted the link &lt;a href="http://www.udidahan.com/2008/11/15/reliability-availability-and-scalability/" rel="nofollow"&gt;here&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>Sunny,</p>
<p>The webcast is now online.</p>
<p>I&#8217;ve posted the link <a href="http://www.udidahan.com/2008/11/15/reliability-availability-and-scalability/" rel="nofollow">here</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on [Presentation] Reliability, Scalability, and Availability by Reliability, Availability, and Scalability</title>
		<link>http://www.udidahan.com/2008/09/25/presentation-reliability-scalability-and-availability/#comment-35819</link>
		<dc:creator>Reliability, Availability, and Scalability</dc:creator>
		<pubDate>Sat, 15 Nov 2008 21:21:06 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/25/presentation-reliability-scalability-and-availability/#comment-35819</guid>
		<description>[...] great people at IASA have made the recording for my webcast available [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] great people at IASA have made the recording for my webcast available [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on User Management Sample by Ben Taylor</title>
		<link>http://www.udidahan.com/2008/11/12/user-management-sample/#comment-35817</link>
		<dc:creator>Ben Taylor</dc:creator>
		<pubDate>Wed, 12 Nov 2008 11:53:21 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/12/user-management-sample/#comment-35817</guid>
		<description>I was not able to attend TechEd.  Was your talk filmed and if so, do you know if it will be made available online to non-attendees?</description>
		<content:encoded><![CDATA[<p>I was not able to attend TechEd.  Was your talk filmed and if so, do you know if it will be made available online to non-attendees?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on User Management Sample by Daniel</title>
		<link>http://www.udidahan.com/2008/11/12/user-management-sample/#comment-35816</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Wed, 12 Nov 2008 09:46:38 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/12/user-management-sample/#comment-35816</guid>
		<description>Any chance you would post a podcast of your presentation, for the less fortunate who didn't make it to TechEd?</description>
		<content:encoded><![CDATA[<p>Any chance you would post a podcast of your presentation, for the less fortunate who didn&#8217;t make it to TechEd?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Fetching Strategy Design by udidahan</title>
		<link>http://www.udidahan.com/2007/04/23/fetching-strategy-design/#comment-35814</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 08 Nov 2008 05:54:06 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/04/23/fetching-strategy-design/#comment-35814</guid>
		<description>Bjorn,

My service layer usually does messaging - those "special Message Objects" you alluded to (which are DTOs).

You might like this post describing how these two might work together in a broader perspective here:

&lt;a href="http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/" rel="nofollow"&gt;Command Query Separation and SOA&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Bjorn,</p>
<p>My service layer usually does messaging - those &#8220;special Message Objects&#8221; you alluded to (which are DTOs).</p>
<p>You might like this post describing how these two might work together in a broader perspective here:</p>
<p><a href="http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/" rel="nofollow">Command Query Separation and SOA</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Fetching Strategy Design by Bjorn</title>
		<link>http://www.udidahan.com/2007/04/23/fetching-strategy-design/#comment-35813</link>
		<dc:creator>Bjorn</dc:creator>
		<pubDate>Fri, 07 Nov 2008 15:39:48 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/04/23/fetching-strategy-design/#comment-35813</guid>
		<description>Hi Udi. Great articles all over the place. Now, I was wondering about the package diagram above. What kind of objects does your service layer deliver to the layers above? Objects from the DomainObjects package (or of course rather its interfaces)? Ok, I get that a CalculateCost-method returns a Money-object. But does a method like GetOrder return a Domain.IOrder? But these objects/interfaces are more than just DTOs aren't they and have methods like Update and so on? Or would you create special Message Objects when the data moves across service boundaries to let's say a web application?</description>
		<content:encoded><![CDATA[<p>Hi Udi. Great articles all over the place. Now, I was wondering about the package diagram above. What kind of objects does your service layer deliver to the layers above? Objects from the DomainObjects package (or of course rather its interfaces)? Ok, I get that a CalculateCost-method returns a Money-object. But does a method like GetOrder return a Domain.IOrder? But these objects/interfaces are more than just DTOs aren&#8217;t they and have methods like Update and so on? Or would you create special Message Objects when the data moves across service boundaries to let&#8217;s say a web application?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, EDA, and CEP a winning combo by Peter Rajsky</title>
		<link>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35811</link>
		<dc:creator>Peter Rajsky</dc:creator>
		<pubDate>Thu, 06 Nov 2008 07:28:06 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35811</guid>
		<description>It is strange that European union standardize what is banana (and has exact criteria)... They should standardize notion of integration service :)</description>
		<content:encoded><![CDATA[<p>It is strange that European union standardize what is banana (and has exact criteria)&#8230; They should standardize notion of integration service <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, EDA, and CEP a winning combo by udidahan</title>
		<link>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35809</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 05 Nov 2008 20:43:17 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35809</guid>
		<description>Peter,

I accept that you have a different opinion on the definition of "service" than I do. Apparently, it's not just the two of us - everyone has their own definition :)

For me, I've given up on the whole reuse thing. I think it's a crock. Has been since OO.

Also, as the example in my post describes, we can see the same thing being both an event producer and "reaction process" as you call it for different kinds of events.

I've read the posts you linked and it appears that you take an integration perspective on SOA. I perceive integration as something that occurs within the context of a single business service.

Anyway, glad you commented and I'm looking to hearing more from you.</description>
		<content:encoded><![CDATA[<p>Peter,</p>
<p>I accept that you have a different opinion on the definition of &#8220;service&#8221; than I do. Apparently, it&#8217;s not just the two of us - everyone has their own definition <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>For me, I&#8217;ve given up on the whole reuse thing. I think it&#8217;s a crock. Has been since OO.</p>
<p>Also, as the example in my post describes, we can see the same thing being both an event producer and &#8220;reaction process&#8221; as you call it for different kinds of events.</p>
<p>I&#8217;ve read the posts you linked and it appears that you take an integration perspective on SOA. I perceive integration as something that occurs within the context of a single business service.</p>
<p>Anyway, glad you commented and I&#8217;m looking to hearing more from you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, EDA, and CEP a winning combo by Peter Rajsky</title>
		<link>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35807</link>
		<dc:creator>Peter Rajsky</dc:creator>
		<pubDate>Wed, 05 Nov 2008 13:53:57 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35807</guid>
		<description>Nice article. I follow Jack fight :)
What I do not like on it is following: 
 You call Sales, Inventory and Shipping "business services". Actually there are three different component types: Services, Event producers and Event reaction processes (these are not reusable and catalogized in the same way as services or as events; http://it.toolbox.com/blogs/system-integration-theory/eda-soa-crossproject-documentation-26215). 
 ESB is still needed - for implementation of reaction processes and simple composite services (e.g. routing/transformation). Again ESB tools should differentiate between these three component types 
(http://it.toolbox.com/blogs/system-integration-theory/what-does-the-letter-s-in-jbossesb-mean-27069)
 We need to differentiate when to use event-driven communication for your example and not one-way command? It is not about loosely coupling only probably... (I tried to find out answer in http://it.toolbox.com/blogs/system-integration-theory/would-you-like-service-or-event-sir-26243; but it is not so easy...)
</description>
		<content:encoded><![CDATA[<p>Nice article. I follow Jack fight <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
What I do not like on it is following:<br />
 You call Sales, Inventory and Shipping &#8220;business services&#8221;. Actually there are three different component types: Services, Event producers and Event reaction processes (these are not reusable and catalogized in the same way as services or as events; <a href="http://it.toolbox.com/blogs/system-integration-theory/eda-soa-crossproject-documentation-26215" rel="nofollow">http://it.toolbox.com/blogs/system-integration-theory/eda-soa-crossproject-documentation-26215</a>).<br />
 ESB is still needed - for implementation of reaction processes and simple composite services (e.g. routing/transformation). Again ESB tools should differentiate between these three component types<br />
(http://it.toolbox.com/blogs/system-integration-theory/what-does-the-letter-s-in-jbossesb-mean-27069)<br />
 We need to differentiate when to use event-driven communication for your example and not one-way command? It is not about loosely coupling only probably&#8230; (I tried to find out answer in <a href="http://it.toolbox.com/blogs/system-integration-theory/would-you-like-service-or-event-sir-26243;" rel="nofollow">http://it.toolbox.com/blogs/system-integration-theory/would-you-like-service-or-event-sir-26243;</a> but it is not so easy&#8230;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Domain Events - Take 2 by udidahan</title>
		<link>http://www.udidahan.com/2008/08/25/domain-events-take-2/#comment-35804</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 02 Nov 2008 22:54:58 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/08/25/domain-events-take-2/#comment-35804</guid>
		<description>Neil,

This creates extensibility and maintainability issues.

Suppose I write another domain object which acts as an aggregate root in a different scenario making use of the current parent as a child. I'd have to remember to redefine that event on my object.

Does that make sense?</description>
		<content:encoded><![CDATA[<p>Neil,</p>
<p>This creates extensibility and maintainability issues.</p>
<p>Suppose I write another domain object which acts as an aggregate root in a different scenario making use of the current parent as a child. I&#8217;d have to remember to redefine that event on my object.</p>
<p>Does that make sense?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, EDA, and CEP a winning combo by udidahan</title>
		<link>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35803</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 02 Nov 2008 22:51:29 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35803</guid>
		<description>Jack,

We need more people fighting the good fight :)</description>
		<content:encoded><![CDATA[<p>Jack,</p>
<p>We need more people fighting the good fight <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, EDA, and CEP a winning combo by udidahan</title>
		<link>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35802</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 02 Nov 2008 22:50:41 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35802</guid>
		<description>Mark,

Glad you liked it.</description>
		<content:encoded><![CDATA[<p>Mark,</p>
<p>Glad you liked it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, EDA, and CEP a winning combo by Jack van Hoof</title>
		<link>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35801</link>
		<dc:creator>Jack van Hoof</dc:creator>
		<pubDate>Sun, 02 Nov 2008 17:26:44 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35801</guid>
		<description>Now you really are my friend, Udi. Excellent post!!

-Jack</description>
		<content:encoded><![CDATA[<p>Now you really are my friend, Udi. Excellent post!!</p>
<p>-Jack</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SOA, EDA, and CEP a winning combo by Mark Nijhof</title>
		<link>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35799</link>
		<dc:creator>Mark Nijhof</dc:creator>
		<pubDate>Sun, 02 Nov 2008 00:13:50 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/#comment-35799</guid>
		<description>Hi Udi,

Good post! I totally Agree with this idea. SOA is a good pattern to clearly separate the different responsibilities within the application Then use EDA to have these Services communicate with each other. This gives a very high grade of louse coupling and with that all the nice abilities to make changes easier. I have been thinking about combining EDA with DIP as a technical pattern with the main purpose to make change easy (http://blog.fohjin.com/2008/09/no-dependency-architecture-nda.html). Adding SOA to this seems like a logical next step, I will definitely look more into this.

Thanks,

-Mark</description>
		<content:encoded><![CDATA[<p>Hi Udi,</p>
<p>Good post! I totally Agree with this idea. SOA is a good pattern to clearly separate the different responsibilities within the application Then use EDA to have these Services communicate with each other. This gives a very high grade of louse coupling and with that all the nice abilities to make changes easier. I have been thinking about combining EDA with DIP as a technical pattern with the main purpose to make change easy (http://blog.fohjin.com/2008/09/no-dependency-architecture-nda.html). Adding SOA to this seems like a logical next step, I will definitely look more into this.</p>
<p>Thanks,</p>
<p>-Mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Time Dimension Necessary For Successful SOA Data Strategy by SOA, EDA, and CEP a winning combo</title>
		<link>http://www.udidahan.com/2008/04/20/time-dimension-necessary-for-successful-soa-data-strategy/#comment-35798</link>
		<dc:creator>SOA, EDA, and CEP a winning combo</dc:creator>
		<pubDate>Sat, 01 Nov 2008 22:58:17 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/04/20/time-dimension-necessary-for-successful-soa-data-strategy/#comment-35798</guid>
		<description>[...] Time and SOA [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Time and SOA [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Command Query Separation and SOA by SOA, EDA, and CEP a winning combo</title>
		<link>http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/#comment-35797</link>
		<dc:creator>SOA, EDA, and CEP a winning combo</dc:creator>
		<pubDate>Sat, 01 Nov 2008 22:57:49 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/#comment-35797</guid>
		<description>[...] How client interaction fits with SOA [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] How client interaction fits with SOA [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Visual Cobol, Enterprise Processes, and SOA by SOA, EDA, and CEP a winning combo</title>
		<link>http://www.udidahan.com/2008/04/23/visual-cobol-enterprise-processes-and-soa/#comment-35796</link>
		<dc:creator>SOA, EDA, and CEP a winning combo</dc:creator>
		<pubDate>Sat, 01 Nov 2008 22:57:20 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/04/23/visual-cobol-enterprise-processes-and-soa/#comment-35796</guid>
		<description>[...] Related Content SOA and Enterprise Processes [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Related Content SOA and Enterprise Processes [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Domain Events - Take 2 by Neil Mosafi</title>
		<link>http://www.udidahan.com/2008/08/25/domain-events-take-2/#comment-35790</link>
		<dc:creator>Neil Mosafi</dc:creator>
		<pubDate>Wed, 29 Oct 2008 16:23:33 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/08/25/domain-events-take-2/#comment-35790</guid>
		<description>Not too keen on having the static global events, why not have the events defined as properties on the domain model?  I know you would say "but what if a child object raised the event?" but I would say that's the parent object's responsibility to listen to child object events and either handle them or raise its own events accordingly (or simply delegate via a custom add and remove handler).

What would be the problem with that?</description>
		<content:encoded><![CDATA[<p>Not too keen on having the static global events, why not have the events defined as properties on the domain model?  I know you would say &#8220;but what if a child object raised the event?&#8221; but I would say that&#8217;s the parent object&#8217;s responsibility to listen to child object events and either handle them or raise its own events accordingly (or simply delegate via a custom add and remove handler).</p>
<p>What would be the problem with that?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Asynchronous, High-Performance Login for Web Farms by udidahan</title>
		<link>http://www.udidahan.com/2007/11/10/asynchronous-high-performance-login-for-web-farms/#comment-35789</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 29 Oct 2008 13:27:38 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/11/10/asynchronous-high-performance-login-for-web-farms/#comment-35789</guid>
		<description>Daniel #4,

Foreign keys and unique constraints are still enforced in the DB. The web server, by having a copy of emails locally, can avoid calling through to the DB for user registrations which are clearly invalid. Still, the web server doesn't add users on its own volition, but submits a request through to the DB for that. 

The point of this web tier caching is to reduce load on the DB, not to replace it entirely.

There are cases where "things can't be made asynchronous", but less than you might think. I do have guidelines around them, but they fill up a 5-day course and are very much tied to understanding the specifics of your business domain.

Hope that helps.</description>
		<content:encoded><![CDATA[<p>Daniel #4,</p>
<p>Foreign keys and unique constraints are still enforced in the DB. The web server, by having a copy of emails locally, can avoid calling through to the DB for user registrations which are clearly invalid. Still, the web server doesn&#8217;t add users on its own volition, but submits a request through to the DB for that. </p>
<p>The point of this web tier caching is to reduce load on the DB, not to replace it entirely.</p>
<p>There are cases where &#8220;things can&#8217;t be made asynchronous&#8221;, but less than you might think. I do have guidelines around them, but they fill up a 5-day course and are very much tied to understanding the specifics of your business domain.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Additional Logic Required For Service Autonomy by Jack van Hoof</title>
		<link>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35785</link>
		<dc:creator>Jack van Hoof</dc:creator>
		<pubDate>Tue, 28 Oct 2008 21:43:30 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35785</guid>
		<description>This article might be of interest:

http://soa-eda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html</description>
		<content:encoded><![CDATA[<p>This article might be of interest:</p>
<p><a href="http://soa-eda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html" rel="nofollow">http://soa-eda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Asynchronous, High-Performance Login for Web Farms by Daniel</title>
		<link>http://www.udidahan.com/2007/11/10/asynchronous-high-performance-login-for-web-farms/#comment-35784</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Tue, 28 Oct 2008 15:14:03 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/11/10/asynchronous-high-performance-login-for-web-farms/#comment-35784</guid>
		<description>I'm a different Daniel from #2, but have a related question.  I'm still trying to get my head around this concept and have two questions:

-How are foreign keys and unique constraints handled in this setup?  For example, if there is a unique constraint on email in the database, but the web server allowed a user to register the same email twice.  Is it expected that all such constraints should be enforced in the service in addition to the database?

-Are there, in fact, cases where "things can't be made asynchronous"?  When designing a system, do you have any guidelines for when to/not to use nServiceBus and event-driven design?</description>
		<content:encoded><![CDATA[<p>I&#8217;m a different Daniel from #2, but have a related question.  I&#8217;m still trying to get my head around this concept and have two questions:</p>
<p>-How are foreign keys and unique constraints handled in this setup?  For example, if there is a unique constraint on email in the database, but the web server allowed a user to register the same email twice.  Is it expected that all such constraints should be enforced in the service in addition to the database?</p>
<p>-Are there, in fact, cases where &#8220;things can&#8217;t be made asynchronous&#8221;?  When designing a system, do you have any guidelines for when to/not to use nServiceBus and event-driven design?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Additional Logic Required For Service Autonomy by Libor</title>
		<link>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35783</link>
		<dc:creator>Libor</dc:creator>
		<pubDate>Tue, 28 Oct 2008 07:19:50 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35783</guid>
		<description>Maybe additional interesting question is what integration approach you would use if you need integrate more business services down to the stream line especially if some of those actions are "loosely" defined in request/response communication style. 

Imagine case where Sales let client order varies items. Upon order request confirmation is order data passes to Billing which creates invoice and returns it back to Sales. Billing also passes request to Shipping for packaging items. Sales collect all documents from Billing and Shipping and passes them on client -&#62; either all was confirmed or order was reject for some reason (i.e. out of stock items, user broke  credit line, etc.).

Main question is: Would you still use pub/sub in all those communications? If not why and when you would use it then.</description>
		<content:encoded><![CDATA[<p>Maybe additional interesting question is what integration approach you would use if you need integrate more business services down to the stream line especially if some of those actions are &#8220;loosely&#8221; defined in request/response communication style. </p>
<p>Imagine case where Sales let client order varies items. Upon order request confirmation is order data passes to Billing which creates invoice and returns it back to Sales. Billing also passes request to Shipping for packaging items. Sales collect all documents from Billing and Shipping and passes them on client -&gt; either all was confirmed or order was reject for some reason (i.e. out of stock items, user broke  credit line, etc.).</p>
<p>Main question is: Would you still use pub/sub in all those communications? If not why and when you would use it then.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Additional Logic Required For Service Autonomy by Libor</title>
		<link>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35782</link>
		<dc:creator>Libor</dc:creator>
		<pubDate>Tue, 28 Oct 2008 00:21:02 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35782</guid>
		<description>All depends on business needs I guess.

If I would get assignment as described above I would probably think first about replacing synchronous calls with async. once. MSQM/REST or similar helps nicely here.

Additionally I would think Merchandising and Sales need to "know each other". What you will do if subscriber (i.e. Sales) misses some price update sent from publisher due its own downtime (this under assumption that price is published only when changed and not periodically even if not changed)? For this reason I would say there has to be some way Sales will ask Merchandising to ask for "snapshot" on possibly missed data or get up-to-date price data. And here we have basically request/response pattern. MSMQ/Rest would help again.   

Yes I need explicit configuration for both services to talk to each other. If I'm on enterprise system I would not see any problem with it.

From article there is nothing which indicates you are planning to use published prices in another service.

Planning for use same data on multiple services seems to be a good reason for pub/sub. But if I originally use MSMQ for solution (i.e. async mode delivery) to connect "M" &#38; "S" services and now I have additional services which needs price notification I can just simply use "Distribution list" feature here (http://msdn.microsoft.com/en-us/library/ms704262(VS.85).aspx). And again I have to admit that explicit destination setup is needed. But is it really problem especially in case of enterprise solution if basically know all subscribers? BTW need for request/response pattern on snapshot remains still here.</description>
		<content:encoded><![CDATA[<p>All depends on business needs I guess.</p>
<p>If I would get assignment as described above I would probably think first about replacing synchronous calls with async. once. MSQM/REST or similar helps nicely here.</p>
<p>Additionally I would think Merchandising and Sales need to &#8220;know each other&#8221;. What you will do if subscriber (i.e. Sales) misses some price update sent from publisher due its own downtime (this under assumption that price is published only when changed and not periodically even if not changed)? For this reason I would say there has to be some way Sales will ask Merchandising to ask for &#8220;snapshot&#8221; on possibly missed data or get up-to-date price data. And here we have basically request/response pattern. MSMQ/Rest would help again.   </p>
<p>Yes I need explicit configuration for both services to talk to each other. If I&#8217;m on enterprise system I would not see any problem with it.</p>
<p>From article there is nothing which indicates you are planning to use published prices in another service.</p>
<p>Planning for use same data on multiple services seems to be a good reason for pub/sub. But if I originally use MSMQ for solution (i.e. async mode delivery) to connect &#8220;M&#8221; &amp; &#8220;S&#8221; services and now I have additional services which needs price notification I can just simply use &#8220;Distribution list&#8221; feature here (http://msdn.microsoft.com/en-us/library/ms704262(VS.85).aspx). And again I have to admit that explicit destination setup is needed. But is it really problem especially in case of enterprise solution if basically know all subscribers? BTW need for request/response pattern on snapshot remains still here.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Additional Logic Required For Service Autonomy by udidahan</title>
		<link>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35781</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Mon, 27 Oct 2008 17:29:22 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35781</guid>
		<description>You're correct in saying that a one-way messaging, fire-and-forget call from Merchandising to Sales would not cause it to block.

On the other hand, how would Merchandising know that Sales needs its price information? This logical coupling is what pub/sub avoids, on top of the physical coupling that one-way messaging avoids.

Should an additional service want pricing and/or product information, it could just subscribe to those events, without requiring any changes to Merchandising.

Does that make things clearer?</description>
		<content:encoded><![CDATA[<p>You&#8217;re correct in saying that a one-way messaging, fire-and-forget call from Merchandising to Sales would not cause it to block.</p>
<p>On the other hand, how would Merchandising know that Sales needs its price information? This logical coupling is what pub/sub avoids, on top of the physical coupling that one-way messaging avoids.</p>
<p>Should an additional service want pricing and/or product information, it could just subscribe to those events, without requiring any changes to Merchandising.</p>
<p>Does that make things clearer?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Additional Logic Required For Service Autonomy by Libor</title>
		<link>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35780</link>
		<dc:creator>Libor</dc:creator>
		<pubDate>Sun, 26 Oct 2008 23:18:12 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35780</guid>
		<description>Udi,
thanks for clarification but I'm still not clear about this. 

What is major benefit of pub/sub here compare for example with plain message queuing (e.g. MSMQ with persistence which addresses disconnected states quite well)?
 

Additionally I don't think asynchronous call automatically means RPC (i.e. I assume RPC is defined as blocking operation on caller side). I can send (as Merchandising via async. call) given price notification as easily as you do with pub/sub and don't need to block itself on response.</description>
		<content:encoded><![CDATA[<p>Udi,<br />
thanks for clarification but I&#8217;m still not clear about this. </p>
<p>What is major benefit of pub/sub here compare for example with plain message queuing (e.g. MSMQ with persistence which addresses disconnected states quite well)?</p>
<p>Additionally I don&#8217;t think asynchronous call automatically means RPC (i.e. I assume RPC is defined as blocking operation on caller side). I can send (as Merchandising via async. call) given price notification as easily as you do with pub/sub and don&#8217;t need to block itself on response.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Additional Logic Required For Service Autonomy by udidahan</title>
		<link>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35778</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 26 Oct 2008 21:27:28 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35778</guid>
		<description>I see what you're saying. It is possible to avoid the blocking nature of RPC by switching it with full-duplex communications.

That still has the unfortunate effect that the end-to-end time it takes to process a call is dependent on the speed of who you're talking to. Pub/sub eliminates that as well.

But thanks for helping me focus on the actual benefit pub/sub brings over RPC and asynchronous calls.</description>
		<content:encoded><![CDATA[<p>I see what you&#8217;re saying. It is possible to avoid the blocking nature of RPC by switching it with full-duplex communications.</p>
<p>That still has the unfortunate effect that the end-to-end time it takes to process a call is dependent on the speed of who you&#8217;re talking to. Pub/sub eliminates that as well.</p>
<p>But thanks for helping me focus on the actual benefit pub/sub brings over RPC and asynchronous calls.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Additional Logic Required For Service Autonomy by Libor</title>
		<link>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35776</link>
		<dc:creator>Libor</dc:creator>
		<pubDate>Fri, 24 Oct 2008 22:23:49 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35776</guid>
		<description>Udi,
I meant this generally.

For example in first paragraph under section "Pub/Sub Considered Helpful" I might replace "pub/sub" with "asynchronous call", "published" with "send" and "publisher/subscriber" with "provider/consumer". Sentence with change remains still true.</description>
		<content:encoded><![CDATA[<p>Udi,<br />
I meant this generally.</p>
<p>For example in first paragraph under section &#8220;Pub/Sub Considered Helpful&#8221; I might replace &#8220;pub/sub&#8221; with &#8220;asynchronous call&#8221;, &#8220;published&#8221; with &#8220;send&#8221; and &#8220;publisher/subscriber&#8221; with &#8220;provider/consumer&#8221;. Sentence with change remains still true.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Additional Logic Required For Service Autonomy by udidahan</title>
		<link>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35774</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Thu, 23 Oct 2008 22:45:20 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35774</guid>
		<description>Libor,

Are you referring to how Sales gets pricing information from Merchandising?</description>
		<content:encoded><![CDATA[<p>Libor,</p>
<p>Are you referring to how Sales gets pricing information from Merchandising?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Additional Logic Required For Service Autonomy by Libor</title>
		<link>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35773</link>
		<dc:creator>Libor</dc:creator>
		<pubDate>Thu, 23 Oct 2008 14:15:44 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/22/additional-logic-required-for-service-autonomy/#comment-35773</guid>
		<description>Udi,
why you need pub/sub for this? Can't asynchronous communication will be sufficient?

Regards,
Libor</description>
		<content:encoded><![CDATA[<p>Udi,<br />
why you need pub/sub for this? Can&#8217;t asynchronous communication will be sufficient?</p>
<p>Regards,<br />
Libor</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Welcome! And thank you for your patience by Colin Jack</title>
		<link>http://www.udidahan.com/2008/10/20/welcome-and-thank-you-for-your-patience/#comment-35772</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Thu, 23 Oct 2008 10:23:34 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/20/welcome-and-thank-you-for-your-patience/#comment-35772</guid>
		<description>Great idea!</description>
		<content:encoded><![CDATA[<p>Great idea!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Don&#8217;t EDA between existing systems by Additional Logic Required For Service Autonomy</title>
		<link>http://www.udidahan.com/2007/08/16/dont-eda-between-existing-systems/#comment-35771</link>
		<dc:creator>Additional Logic Required For Service Autonomy</dc:creator>
		<pubDate>Wed, 22 Oct 2008 22:13:07 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/08/16/dont-eda-between-existing-systems/#comment-35771</guid>
		<description>[...] Event-Driven Architecture and Legacy Applications [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Event-Driven Architecture and Legacy Applications [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Time Dimension Necessary For Successful SOA Data Strategy by Additional Logic Required For Service Autonomy</title>
		<link>http://www.udidahan.com/2008/04/20/time-dimension-necessary-for-successful-soa-data-strategy/#comment-35770</link>
		<dc:creator>Additional Logic Required For Service Autonomy</dc:creator>
		<pubDate>Wed, 22 Oct 2008 22:12:39 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/04/20/time-dimension-necessary-for-successful-soa-data-strategy/#comment-35770</guid>
		<description>[...] 7 Questions around data freshness&#160; [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] 7 Questions around data freshness&nbsp; [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 7 Simple Questions for Service Selection by Additional Logic Required For Service Autonomy</title>
		<link>http://www.udidahan.com/2008/05/16/7-simple-questions-for-service-selection/#comment-35769</link>
		<dc:creator>Additional Logic Required For Service Autonomy</dc:creator>
		<pubDate>Wed, 22 Oct 2008 22:12:11 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/05/16/7-simple-questions-for-service-selection/#comment-35769</guid>
		<description>[...] Read more about: 7 Questions for Service Selection [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Read more about: 7 Questions for Service Selection [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Better Domain-Driven Design Implementation by What purpose does the Repository Pattern have? &#171; Cav&#8217;s Weblog</title>
		<link>http://www.udidahan.com/2007/03/06/better-domain-driven-design-implementation/#comment-35768</link>
		<dc:creator>What purpose does the Repository Pattern have? &#171; Cav&#8217;s Weblog</dc:creator>
		<pubDate>Wed, 22 Oct 2008 19:42:52 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/03/06/better-domain-driven-design-implementation/#comment-35768</guid>
		<description>[...] in my repositories to implement fetching strategies (using technique similar to the one suggested here), so specific entities can be pre-fetched where required. This allows me to optimise my data [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] in my repositories to implement fetching strategies (using technique similar to the one suggested here), so specific entities can be pre-fetched where required. This allows me to optimise my data [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Command Query Separation and SOA by udidahan</title>
		<link>http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/#comment-35766</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 22 Oct 2008 08:30:36 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/#comment-35766</guid>
		<description>Colin,

That's correct.</description>
		<content:encoded><![CDATA[<p>Colin,</p>
<p>That&#8217;s correct.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Command Query Separation and SOA by Colin Jack</title>
		<link>http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/#comment-35765</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Tue, 21 Oct 2008 20:53:54 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/#comment-35765</guid>
		<description>@udidahan
Would it be fair to say that the upper layers mainly communicate with the Query services synchronously? I'm thinking here of getting all Customers, getting a Customer to edit and so on.</description>
		<content:encoded><![CDATA[<p>@udidahan<br />
Would it be fair to say that the upper layers mainly communicate with the Query services synchronously? I&#8217;m thinking here of getting all Customers, getting a Customer to edit and so on.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on [Presentation] Reliability, Scalability, and Availability by udidahan</title>
		<link>http://www.udidahan.com/2008/09/25/presentation-reliability-scalability-and-availability/#comment-35012</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Thu, 16 Oct 2008 04:42:05 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/25/presentation-reliability-scalability-and-availability/#comment-35012</guid>
		<description>Sergey, Sunny,

Glad you liked the slides so much.
I'll get in touch with IASA and see if the recording is online.</description>
		<content:encoded><![CDATA[<p>Sergey, Sunny,</p>
<p>Glad you liked the slides so much.<br />
I&#8217;ll get in touch with IASA and see if the recording is online.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on [Presentation] Reliability, Scalability, and Availability by Sunny Nagi</title>
		<link>http://www.udidahan.com/2008/09/25/presentation-reliability-scalability-and-availability/#comment-34996</link>
		<dc:creator>Sunny Nagi</dc:creator>
		<pubDate>Thu, 16 Oct 2008 02:25:48 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/25/presentation-reliability-scalability-and-availability/#comment-34996</guid>
		<description>Hey Udi,

By any chance was there a webcast for this talk ? I would like to get my hands on it if one was recorded.

Very good slides, I must admit.

Cheers</description>
		<content:encoded><![CDATA[<p>Hey Udi,</p>
<p>By any chance was there a webcast for this talk ? I would like to get my hands on it if one was recorded.</p>
<p>Very good slides, I must admit.</p>
<p>Cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Now a member of the Cutter Consortium by Jesse Ezell</title>
		<link>http://www.udidahan.com/2008/10/09/now-a-member-of-the-cutter-consortium/#comment-34960</link>
		<dc:creator>Jesse Ezell</dc:creator>
		<pubDate>Wed, 15 Oct 2008 20:33:52 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/09/now-a-member-of-the-cutter-consortium/#comment-34960</guid>
		<description>That's a cool deal. Congrats.</description>
		<content:encoded><![CDATA[<p>That&#8217;s a cool deal. Congrats.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Now a member of the Cutter Consortium by udidahan</title>
		<link>http://www.udidahan.com/2008/10/09/now-a-member-of-the-cutter-consortium/#comment-34345</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 11 Oct 2008 08:47:32 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/09/now-a-member-of-the-cutter-consortium/#comment-34345</guid>
		<description>Thanks all.</description>
		<content:encoded><![CDATA[<p>Thanks all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit Testing for Developers and Managers by Be Prepared To Be Surprised &#124; The Freak Parade</title>
		<link>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-34342</link>
		<dc:creator>Be Prepared To Be Surprised &#124; The Freak Parade</dc:creator>
		<pubDate>Sat, 11 Oct 2008 08:28:39 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-34342</guid>
		<description>[...] as Udi Dahan points out, we often feel we are not at liberty to go off experimenting with change at the expense [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] as Udi Dahan points out, we often feel we are not at liberty to go off experimenting with change at the expense [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Now a member of the Cutter Consortium by Dru Sellers</title>
		<link>http://www.udidahan.com/2008/10/09/now-a-member-of-the-cutter-consortium/#comment-34201</link>
		<dc:creator>Dru Sellers</dc:creator>
		<pubDate>Fri, 10 Oct 2008 14:22:08 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/09/now-a-member-of-the-cutter-consortium/#comment-34201</guid>
		<description>Congrats!</description>
		<content:encoded><![CDATA[<p>Congrats!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Now a member of the Cutter Consortium by Casey</title>
		<link>http://www.udidahan.com/2008/10/09/now-a-member-of-the-cutter-consortium/#comment-34167</link>
		<dc:creator>Casey</dc:creator>
		<pubDate>Fri, 10 Oct 2008 09:29:08 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/09/now-a-member-of-the-cutter-consortium/#comment-34167</guid>
		<description>Big congratulations! Very well deserved</description>
		<content:encoded><![CDATA[<p>Big congratulations! Very well deserved</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit Testing for Developers and Managers by Learning On A Project - Ian Cooper [MVP]</title>
		<link>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-34157</link>
		<dc:creator>Learning On A Project - Ian Cooper [MVP]</dc:creator>
		<pubDate>Fri, 10 Oct 2008 08:30:58 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-34157</guid>
		<description>[...] original post about increasing TDD adoption. Roy updates some of the reaction here and here. Udi comments on my reaction that the most important thing is to being writing tests and then learn how to write [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] original post about increasing TDD adoption. Roy updates some of the reaction here and here. Udi comments on my reaction that the most important thing is to being writing tests and then learn how to write [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Now a member of the Cutter Consortium by Arnon Rotem-Gal-Oz</title>
		<link>http://www.udidahan.com/2008/10/09/now-a-member-of-the-cutter-consortium/#comment-34062</link>
		<dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
		<pubDate>Thu, 09 Oct 2008 18:52:30 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/10/09/now-a-member-of-the-cutter-consortium/#comment-34062</guid>
		<description>Congratulations :)</description>
		<content:encoded><![CDATA[<p>Congratulations <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Better Domain-Driven Design Implementation by udidahan</title>
		<link>http://www.udidahan.com/2007/03/06/better-domain-driven-design-implementation/#comment-34044</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Thu, 09 Oct 2008 14:55:02 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/03/06/better-domain-driven-design-implementation/#comment-34044</guid>
		<description>Craig,

I don't consider this an issue. If you can do everything you need by calling a single (one and only one) method on the interface which you retrieved (it's OK to pass in other objects which you retrieved or created as parameters), then you should be fine.</description>
		<content:encoded><![CDATA[<p>Craig,</p>
<p>I don&#8217;t consider this an issue. If you can do everything you need by calling a single (one and only one) method on the interface which you retrieved (it&#8217;s OK to pass in other objects which you retrieved or created as parameters), then you should be fine.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Better Domain-Driven Design Implementation by CraigCav</title>
		<link>http://www.udidahan.com/2007/03/06/better-domain-driven-design-implementation/#comment-33912</link>
		<dc:creator>CraigCav</dc:creator>
		<pubDate>Wed, 08 Oct 2008 13:02:31 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/03/06/better-domain-driven-design-implementation/#comment-33912</guid>
		<description>Udi,

I'm quite new to DDD and something I have recently been contemplating (and battling with) is a rule suggested in Evan's book that only Aggregate Roots can be obtained directly with database queries,  everything else must be done through traversal. 

In the example above (and in many attempts I have made to use the repository pattern with a generic repository), it seems appropriate to request an implementation of an interface that isnt the (necessarily) the implementation of your aggregate root. 

The example code requests and returns an implementation of IOrderCalculator from the repository. This may or may not be the aggregate root (order). Do you see this as an issue?</description>
		<content:encoded><![CDATA[<p>Udi,</p>
<p>I&#8217;m quite new to DDD and something I have recently been contemplating (and battling with) is a rule suggested in Evan&#8217;s book that only Aggregate Roots can be obtained directly with database queries,  everything else must be done through traversal. </p>
<p>In the example above (and in many attempts I have made to use the repository pattern with a generic repository), it seems appropriate to request an implementation of an interface that isnt the (necessarily) the implementation of your aggregate root. </p>
<p>The example code requests and returns an implementation of IOrderCalculator from the repository. This may or may not be the aggregate root (order). Do you see this as an issue?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Fetching Strategy NHibernate Implementation Available by udidahan</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-33306</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Thu, 02 Oct 2008 21:00:41 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-33306</guid>
		<description>Wadaa,

Ayende's new repository bundles this behavior into it directly. Use it :)</description>
		<content:encoded><![CDATA[<p>Wadaa,</p>
<p>Ayende&#8217;s new repository bundles this behavior into it directly. Use it <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Fetching Strategy NHibernate Implementation Available by wadaa</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-33302</link>
		<dc:creator>wadaa</dc:creator>
		<pubDate>Thu, 02 Oct 2008 20:35:25 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-33302</guid>
		<description>how will this work in the new nhibernate 2.0 binaries, the Create method you created doesn't exist anymore. i'm especially wondering how this works with the nhibernate.linq extension from ayende, how can you put the criteria in those queries (_query = unitOfWork.Session.Linq()).</description>
		<content:encoded><![CDATA[<p>how will this work in the new nhibernate 2.0 binaries, the Create method you created doesn&#8217;t exist anymore. i&#8217;m especially wondering how this works with the nhibernate.linq extension from ayende, how can you put the criteria in those queries (_query = unitOfWork.Session.Linq()).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit Testing for Developers and Managers by Alan</title>
		<link>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33210</link>
		<dc:creator>Alan</dc:creator>
		<pubDate>Wed, 01 Oct 2008 20:54:59 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33210</guid>
		<description>Excellent post, I will go "broadcast" in my blog.
Some managers sacriface yours project only by cost and pmi pratices, but to test domain model is very important. Managers should not to do this.</description>
		<content:encoded><![CDATA[<p>Excellent post, I will go &#8220;broadcast&#8221; in my blog.<br />
Some managers sacriface yours project only by cost and pmi pratices, but to test domain model is very important. Managers should not to do this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit Testing for Developers and Managers by jdn</title>
		<link>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33198</link>
		<dc:creator>jdn</dc:creator>
		<pubDate>Wed, 01 Oct 2008 15:43:27 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33198</guid>
		<description>Alleluia.</description>
		<content:encoded><![CDATA[<p>Alleluia.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit Testing for Developers and Managers by udidahan</title>
		<link>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33195</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 01 Oct 2008 15:05:44 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33195</guid>
		<description>Casey,

I think that that's about right.</description>
		<content:encoded><![CDATA[<p>Casey,</p>
<p>I think that that&#8217;s about right.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit Testing for Developers and Managers by Testing Is Not Technically Hard, It Is Hard Because It Requires Clear Thought and Understanding - Casey Charlton - Insane World</title>
		<link>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33181</link>
		<dc:creator>Testing Is Not Technically Hard, It Is Hard Because It Requires Clear Thought and Understanding - Casey Charlton - Insane World</dc:creator>
		<pubDate>Wed, 01 Oct 2008 09:09:14 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33181</guid>
		<description>[...] Unit tests are not technically hard, as Udi points out, what is a test? Anything with TestFixture on it? [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Unit tests are not technically hard, as Udi points out, what is a test? Anything with TestFixture on it? [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit Testing for Developers and Managers by Casey</title>
		<link>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33170</link>
		<dc:creator>Casey</dc:creator>
		<pubDate>Wed, 01 Oct 2008 06:43:27 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33170</guid>
		<description>An excellent post. I think, and hope, what you are saying is any code that does not add *business* value is of low value, and tests that have no clear purpose, or that further concrete an already weak design, will ultimately decrease business value.

Saying "we have tests" is relatively worthless, saying we have our core logic fully tested and can now refactor or evolve safely has immense value.</description>
		<content:encoded><![CDATA[<p>An excellent post. I think, and hope, what you are saying is any code that does not add *business* value is of low value, and tests that have no clear purpose, or that further concrete an already weak design, will ultimately decrease business value.</p>
<p>Saying &#8220;we have tests&#8221; is relatively worthless, saying we have our core logic fully tested and can now refactor or evolve safely has immense value.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit Testing for Developers and Managers by Robin Clowers</title>
		<link>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33134</link>
		<dc:creator>Robin Clowers</dc:creator>
		<pubDate>Tue, 30 Sep 2008 22:14:37 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/09/30/unit-testing-for-developers-and-managers/#comment-33134</guid>
		<description>Great post Udi, I have been thinking a lot lately about the value of unit tests in certain parts of a system, and I think you hit the nail on the head.</description>
		<content:encoded><![CDATA[<p>Great post Udi, I have been thinking a lot lately about the value of unit tests in certain parts of a system, and I think you hit the nail on the head.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Self-Documenting, Test-Driven Alien Artifacts by Unit Testing for Developers and Managers</title>
		<link>http://www.udidahan.com/2007/04/16/self-documenting-test-driven-alien-artifacts/#comment-33129</link>
		<dc:creator>Unit Testing for Developers and Managers</dc:creator>
		<pubDate>Tue, 30 Sep 2008 21:03:52 +0000</pubDate>
		<guid>http://www.udidahan.com/2007/04/16/self-documenting-test-driven-alien-artifacts/#comment-33129</guid>
		<description>[...] Self documenting and Test-Driven Alien Artifacts [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Self documenting and Test-Driven Alien Artifacts [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Sagas and Unit Testing - Business Process Verification Made Easy by Unit Testing for Developers and Managers</title>
		<link>http://www.udidahan.com/2008/02/04/sagas-and-unit-testing-business-process-verification-made-easy/#comment-33128</link>
		<dc:creator>Unit Testing for Developers and Managers</dc:creator>
		<pubDate>Tue, 30 Sep 2008 21:03:25 +0000</pubDate>
		<guid>http://www.udidahan.com/2008/02/04/sagas-and-unit-testing-business-process-verification-made-easy/#comment-33128</guid>
		<description>[...] Related Posts Business Process Verification [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Related Posts Business Process Verification [&#8230;]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
