<?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: How Should An Exactly Once SOA Reliable Messaging System Be
  Designed?</title>
	<atom:link href="http://www.goland.org/exactlyonce/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.goland.org/exactlyonce/</link>
	<description>Technology, Politics, Food, Finance, etc.</description>
	<lastBuildDate>Mon, 23 Jan 2012 17:37:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Administrator</title>
		<link>http://www.goland.org/exactlyonce/comment-page-1/#comment-5583</link>
		<dc:creator>Administrator</dc:creator>
		<pubDate>Sat, 15 Oct 2005 16:56:17 +0000</pubDate>
		<guid isPermaLink="false">#comment-5583</guid>
		<description>Olli, unfortunately the scenario you describe is unavoidable if a system is allowed to forget IDs. But as I describe in the article being able to forget IDs is a requirement (especially for synchronously reliable systems where the actual response has to be cached) because of space considerations. 

The key then is in designing a particular service to make sure that the time windows are &#039;reasonable&#039; given the expected usage. But yes, there will always be failure cases. Without infinite memory they are unavoidable.</description>
		<content:encoded><![CDATA[<p>Olli, unfortunately the scenario you describe is unavoidable if a system is allowed to forget IDs. But as I describe in the article being able to forget IDs is a requirement (especially for synchronously reliable systems where the actual response has to be cached) because of space considerations. </p>
<p>The key then is in designing a particular service to make sure that the time windows are &#8216;reasonable&#8217; given the expected usage. But yes, there will always be failure cases. Without infinite memory they are unavoidable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Olli</title>
		<link>http://www.goland.org/exactlyonce/comment-page-1/#comment-5581</link>
		<dc:creator>Olli</dc:creator>
		<pubDate>Sat, 15 Oct 2005 11:24:21 +0000</pubDate>
		<guid isPermaLink="false">#comment-5581</guid>
		<description>Hi,

what happens if

Sender sends request with timestamp
Receiver processes request and sends acknowledgement
Acknowledgement get&#039;s lost because of network break
Receiver repeats request with first-instance timestamp but the network is fixed only after the window, so the request will be rejected because of the first-instance timestamp is too old
Now the sender does not know if the request is processed and it has no way to repeat because if he would use a new ID with a new first-instance timestamp this can (and in this scenario would) lead to a double processed request.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>what happens if</p>
<p>Sender sends request with timestamp<br />
Receiver processes request and sends acknowledgement<br />
Acknowledgement get&#8217;s lost because of network break<br />
Receiver repeats request with first-instance timestamp but the network is fixed only after the window, so the request will be rejected because of the first-instance timestamp is too old<br />
Now the sender does not know if the request is processed and it has no way to repeat because if he would use a new ID with a new first-instance timestamp this can (and in this scenario would) lead to a double processed request.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

