<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Advanced Messaging with a dash of DDD</title>
	<atom:link href="http://www.udidahan.com/2008/02/18/advanced-messaging-with-a-dash-of-ddd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com/2008/02/18/advanced-messaging-with-a-dash-of-ddd/</link>
	<description>Enterprise Development Expert &#38; SOA Specialist</description>
	<lastBuildDate>Sat, 11 Feb 2012 15:16:10 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Colin Jack</title>
		<link>http://www.udidahan.com/2008/02/18/advanced-messaging-with-a-dash-of-ddd/comment-page-1/#comment-30757</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Wed, 03 Sep 2008 19:54:11 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2008/02/18/advanced-messaging-with-a-dash-of-ddd/#comment-30757</guid>
		<description>@Udi
I&#039;d also be interested in reading more about the way you use these &quot;extra&quot; style properties for versioning. I get the idea but I&#039;m torn between that approach and the approach where you would just create a new type of message.</description>
		<content:encoded><![CDATA[<p>@Udi<br />
I&#8217;d also be interested in reading more about the way you use these &#8220;extra&#8221; style properties for versioning. I get the idea but I&#8217;m torn between that approach and the approach where you would just create a new type of message.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: shawn</title>
		<link>http://www.udidahan.com/2008/02/18/advanced-messaging-with-a-dash-of-ddd/comment-page-1/#comment-26529</link>
		<dc:creator>shawn</dc:creator>
		<pubDate>Sun, 06 Jul 2008 21:23:09 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2008/02/18/advanced-messaging-with-a-dash-of-ddd/#comment-26529</guid>
		<description>udi,

could you provide a pointer to your follow up article about using the &quot;extra&quot; field for versioning? (hopefully you&#039;ve gotten to write it)

thanks!</description>
		<content:encoded><![CDATA[<p>udi,</p>
<p>could you provide a pointer to your follow up article about using the &#8220;extra&#8221; field for versioning? (hopefully you&#8217;ve gotten to write it)</p>
<p>thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: thesoftwaresimplist</title>
		<link>http://www.udidahan.com/2008/02/18/advanced-messaging-with-a-dash-of-ddd/comment-page-1/#comment-17856</link>
		<dc:creator>thesoftwaresimplist</dc:creator>
		<pubDate>Sun, 24 Feb 2008 09:58:57 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2008/02/18/advanced-messaging-with-a-dash-of-ddd/#comment-17856</guid>
		<description>Ollie,

The thing about TimeToBeReceived is that clients need to know about this as well, although the receiving process can&#039;t count on them to do that correctly.

So, one thing that&#039;s needed is a &quot;reaper&quot; process which checks to queue every once in a while for messages that should be thrown away.

I&#039;ve been thinking about ways to communicate this information as a part of the contract, as well as configure it locally, but haven&#039;t found anything that&#039;s significantly better. The thing is that application code should not be passing this information as a parameter to send/publish/reply methods.

Thus, when this information changes, doing a recompile of just that project isn&#039;t a big deal. We&#039;ve set it up to be done automatically - the admin uses a simple UI to configure the data, and we change the information in the attribute and recompile, and then the admin deploys it.

Does that make sense?</description>
		<content:encoded><![CDATA[<p>Ollie,</p>
<p>The thing about TimeToBeReceived is that clients need to know about this as well, although the receiving process can&#8217;t count on them to do that correctly.</p>
<p>So, one thing that&#8217;s needed is a &#8220;reaper&#8221; process which checks to queue every once in a while for messages that should be thrown away.</p>
<p>I&#8217;ve been thinking about ways to communicate this information as a part of the contract, as well as configure it locally, but haven&#8217;t found anything that&#8217;s significantly better. The thing is that application code should not be passing this information as a parameter to send/publish/reply methods.</p>
<p>Thus, when this information changes, doing a recompile of just that project isn&#8217;t a big deal. We&#8217;ve set it up to be done automatically &#8211; the admin uses a simple UI to configure the data, and we change the information in the attribute and recompile, and then the admin deploys it.</p>
<p>Does that make sense?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ollie Riches</title>
		<link>http://www.udidahan.com/2008/02/18/advanced-messaging-with-a-dash-of-ddd/comment-page-1/#comment-17447</link>
		<dc:creator>Ollie Riches</dc:creator>
		<pubDate>Mon, 18 Feb 2008 18:12:42 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2008/02/18/advanced-messaging-with-a-dash-of-ddd/#comment-17447</guid>
		<description>Also Udi you define a field in the message &#039;extra&#039; as state this will be used for versioning - &#039;As we version our system and schema, we’ll be adding fields to the message.&#039;

Does this mean in future versions it will serialise all new properties\fields via the &#039;extra&#039; field? If so isn&#039;t this kind of mixing the message structure so that there are both strongly typed properties\fields and weakly typed collection of new properties\fields in the primary message class? - if that makes sense... 

eg. How would I add properties like &#039;BuildingId&#039; and &#039;RoomId&#039;?

From my past experience versioning of message always gets complicated I&#039;m coming round to the idea of making a clean break when new versions of messages are required and just great a new assembly or extend the current assembly with a new class representing the new message - obviously this could be an issue if message versions change frequently...


Ollie</description>
		<content:encoded><![CDATA[<p>Also Udi you define a field in the message &#8216;extra&#8217; as state this will be used for versioning &#8211; &#8216;As we version our system and schema, we’ll be adding fields to the message.&#8217;</p>
<p>Does this mean in future versions it will serialise all new properties\fields via the &#8216;extra&#8217; field? If so isn&#8217;t this kind of mixing the message structure so that there are both strongly typed properties\fields and weakly typed collection of new properties\fields in the primary message class? &#8211; if that makes sense&#8230; </p>
<p>eg. How would I add properties like &#8216;BuildingId&#8217; and &#8216;RoomId&#8217;?</p>
<p>From my past experience versioning of message always gets complicated I&#8217;m coming round to the idea of making a clean break when new versions of messages are required and just great a new assembly or extend the current assembly with a new class representing the new message &#8211; obviously this could be an issue if message versions change frequently&#8230;</p>
<p>Ollie</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ollie Riches</title>
		<link>http://www.udidahan.com/2008/02/18/advanced-messaging-with-a-dash-of-ddd/comment-page-1/#comment-17446</link>
		<dc:creator>Ollie Riches</dc:creator>
		<pubDate>Mon, 18 Feb 2008 17:54:40 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2008/02/18/advanced-messaging-with-a-dash-of-ddd/#comment-17446</guid>
		<description>Udi, 

You stated:

‘The way to figure out how long to set is by looking at the smallest amount of durable storage you have available at your nodes, divide that by the size of the average message, and then again by the rate you need to process messages - and leave yourself at least 100% spare.’

Correct me if I’m wrong but doesn’t this subtly suggesting hard-coding hardware performance characteristic into the messages via the TimeToBeReceived attribute? 

If this is true then logically this could be abstracted away with a config file or service locator but that would require references to other assemblies in the message assembly which wouldn&#039;t be ideal.

I would have thought it would be better to define the timeout as a business SLA value which is independent of hardware configuration.



Ollie</description>
		<content:encoded><![CDATA[<p>Udi, </p>
<p>You stated:</p>
<p>‘The way to figure out how long to set is by looking at the smallest amount of durable storage you have available at your nodes, divide that by the size of the average message, and then again by the rate you need to process messages &#8211; and leave yourself at least 100% spare.’</p>
<p>Correct me if I’m wrong but doesn’t this subtly suggesting hard-coding hardware performance characteristic into the messages via the TimeToBeReceived attribute? </p>
<p>If this is true then logically this could be abstracted away with a config file or service locator but that would require references to other assemblies in the message assembly which wouldn&#8217;t be ideal.</p>
<p>I would have thought it would be better to define the timeout as a business SLA value which is independent of hardware configuration.</p>
<p>Ollie</p>
]]></content:encoded>
	</item>
</channel>
</rss>

