<?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: RESTful Leaky Abstractions</title>
	<atom:link href="http://www.subbu.org/blog/2009/08/restful-leaky-abstractions/feed" rel="self" type="application/rss+xml" />
	<link>http://www.subbu.org/blog/2009/08/restful-leaky-abstractions</link>
	<description></description>
	<lastBuildDate>Wed, 08 Feb 2012 05:16:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Semantics are not always &#8216;mere&#8217; semantics &#171; kalountos ta ma onta</title>
		<link>http://www.subbu.org/blog/2009/08/restful-leaky-abstractions/comment-page-1#comment-133209</link>
		<dc:creator>Semantics are not always &#8216;mere&#8217; semantics &#171; kalountos ta ma onta</dc:creator>
		<pubDate>Sat, 16 Apr 2011 04:55:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=1002#comment-133209</guid>
		<description>[...] It’s clear that creating proper RESTful transaction semantics is a tricky problem.  [...]</description>
		<content:encoded><![CDATA[<p>[...] It’s clear that creating proper RESTful transaction semantics is a tricky problem.  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: subbu</title>
		<link>http://www.subbu.org/blog/2009/08/restful-leaky-abstractions/comment-page-1#comment-38412</link>
		<dc:creator>subbu</dc:creator>
		<pubDate>Sat, 05 Sep 2009 17:18:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=1002#comment-38412</guid>
		<description>Bill - there is nothing wrong in a compensation engine as long as it is hidden behind a resource. Letting clients know about a &quot;compensation engine&quot; is a leaky abstraction. Clients should see application specific concepts like &quot;canceling an order&quot; but not &quot;run a compensating transaction&quot;.

If you are building products, build an engine for compensation, but let app developers wrap such an engine with resources.</description>
		<content:encoded><![CDATA[<p>Bill &#8211; there is nothing wrong in a compensation engine as long as it is hidden behind a resource. Letting clients know about a &#8220;compensation engine&#8221; is a leaky abstraction. Clients should see application specific concepts like &#8220;canceling an order&#8221; but not &#8220;run a compensating transaction&#8221;.</p>
<p>If you are building products, build an engine for compensation, but let app developers wrap such an engine with resources.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Burke</title>
		<link>http://www.subbu.org/blog/2009/08/restful-leaky-abstractions/comment-page-1#comment-38046</link>
		<dc:creator>Bill Burke</dc:creator>
		<pubDate>Tue, 01 Sep 2009 03:30:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=1002#comment-38046</guid>
		<description>Well, there&#039;s different types of transactions...I don&#039;t see why a compensation engine wouldn&#039;t be restful as all you&#039;re really doing is coordinating work.</description>
		<content:encoded><![CDATA[<p>Well, there&#8217;s different types of transactions&#8230;I don&#8217;t see why a compensation engine wouldn&#8217;t be restful as all you&#8217;re really doing is coordinating work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Calcote</title>
		<link>http://www.subbu.org/blog/2009/08/restful-leaky-abstractions/comment-page-1#comment-36163</link>
		<dc:creator>John Calcote</dc:creator>
		<pubDate>Mon, 10 Aug 2009 17:39:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=1002#comment-36163</guid>
		<description>Yes, I&#039;ve since concluded this myself. I think the general consensus among the purist RESTful web service community is that there&#039;s no such thing as a general purpose RESTful transaction service. Rather, REST seems to promote the exposure of the highest level services provides by a web service. I actually tend to find this more palatable anyway. :)</description>
		<content:encoded><![CDATA[<p>Yes, I&#8217;ve since concluded this myself. I think the general consensus among the purist RESTful web service community is that there&#8217;s no such thing as a general purpose RESTful transaction service. Rather, REST seems to promote the exposure of the highest level services provides by a web service. I actually tend to find this more palatable anyway. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Subbu Allamaraju</title>
		<link>http://www.subbu.org/blog/2009/08/restful-leaky-abstractions/comment-page-1#comment-35955</link>
		<dc:creator>Subbu Allamaraju</dc:creator>
		<pubDate>Fri, 07 Aug 2009 16:25:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=1002#comment-35955</guid>
		<description>The web is not about data rendering. This is an unfortunate consequence of some trying to equate CRUD with HTTP. Check some of the Roy Fielding&#039;s posts on this topic. I

The key point here is that, the server understands the semantics of what a transaction means, and there is no need to expose these semantics to clients. 

The best way to solve problems like this is to submit a request to the server to do the transfer. In the real world, a bank transfer does not just mean (Acct1 - sum) and (Acct2 + sum). This may involve several back-end processes, and a client should not be able to control those directly.

HTTP servers are, afterall, servers in distributed apps. So, the same principles of loose coupling and separation concerns do apply.</description>
		<content:encoded><![CDATA[<p>The web is not about data rendering. This is an unfortunate consequence of some trying to equate CRUD with HTTP. Check some of the Roy Fielding&#8217;s posts on this topic. I</p>
<p>The key point here is that, the server understands the semantics of what a transaction means, and there is no need to expose these semantics to clients. </p>
<p>The best way to solve problems like this is to submit a request to the server to do the transfer. In the real world, a bank transfer does not just mean (Acct1 &#8211; sum) and (Acct2 + sum). This may involve several back-end processes, and a client should not be able to control those directly.</p>
<p>HTTP servers are, afterall, servers in distributed apps. So, the same principles of loose coupling and separation concerns do apply.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Calcote</title>
		<link>http://www.subbu.org/blog/2009/08/restful-leaky-abstractions/comment-page-1#comment-35954</link>
		<dc:creator>John Calcote</dc:creator>
		<pubDate>Fri, 07 Aug 2009 16:19:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=1002#comment-35954</guid>
		<description>That&#039;s a nice, but useless sentiment. The world is all about using http for web services these days. Bank account management is only one of an entire category of web services that people are trying to implement on the programmable web. I will agree with you on one point, however. The web *is* about data rendering. And an atomic transaction on one or more accounts is a bit of data that benefits greatly from proper rendering - that is from proper REpresentational State Transfer. But what you&#039;re implying is that a bank account web service should be limited to merely displaying these transactions - if a customer wants to actually create them, he has to use another mechanism, such as walking down to the bank. This limitation doesn&#039;t work in the real world, does it?</description>
		<content:encoded><![CDATA[<p>That&#8217;s a nice, but useless sentiment. The world is all about using http for web services these days. Bank account management is only one of an entire category of web services that people are trying to implement on the programmable web. I will agree with you on one point, however. The web *is* about data rendering. And an atomic transaction on one or more accounts is a bit of data that benefits greatly from proper rendering &#8211; that is from proper REpresentational State Transfer. But what you&#8217;re implying is that a bank account web service should be limited to merely displaying these transactions &#8211; if a customer wants to actually create them, he has to use another mechanism, such as walking down to the bank. This limitation doesn&#8217;t work in the real world, does it?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

