<?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: Building Super-Scalable Web Systems with REST</title>
	<atom:link href="http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/</link>
	<description>Enterprise Development Expert &#38; SOA Specialist</description>
	<lastBuildDate>Thu, 11 Mar 2010 11:59:32 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-36797</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 14 Oct 2009 19:00:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-36797</guid>
		<description>Dimitris,

While that improved support is better than what was there before, it still has a ways to go before being CDN friendly - the real scalability benefit.</description>
		<content:encoded><![CDATA[<p>Dimitris,</p>
<p>While that improved support is better than what was there before, it still has a ways to go before being CDN friendly &#8211; the real scalability benefit.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dimitris Papadimitriou</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-36796</link>
		<dc:creator>Dimitris Papadimitriou</dc:creator>
		<pubDate>Wed, 14 Oct 2009 11:53:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-36796</guid>
		<description>It seems that WCF on .NET 4.0 has improved support for caching when it comes to RESTful services.
Read more here: http://msdn.microsoft.com/en-us/library/ee354381.aspx</description>
		<content:encoded><![CDATA[<p>It seems that WCF on .NET 4.0 has improved support for caching when it comes to RESTful services.<br />
Read more here: <a href="http://msdn.microsoft.com/en-us/library/ee354381.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ee354381.aspx</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MySpace Architecture Considered Expensive</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-36770</link>
		<dc:creator>MySpace Architecture Considered Expensive</dc:creator>
		<pubDate>Fri, 09 Oct 2009 21:24:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-36770</guid>
		<description>[...] Building Super-Scalable Web Systems with REST. [...]</description>
		<content:encoded><![CDATA[<p>[...] Building Super-Scalable Web Systems with REST. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-36050</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Thu, 26 Feb 2009 06:35:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-36050</guid>
		<description>Certainly - I came around to the same conclusion after my last post - the real benefit of this approach is seen when the data is public. Thanks for your time on this - most appreciated - very interesting stuff.</description>
		<content:encoded><![CDATA[<p>Certainly &#8211; I came around to the same conclusion after my last post &#8211; the real benefit of this approach is seen when the data is public. Thanks for your time on this &#8211; most appreciated &#8211; very interesting stuff.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-36049</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 25 Feb 2009 11:43:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-36049</guid>
		<description>Matt,

Let me just add that you&#039;re unlikely to achieve great performance improvements when using these patterns for private data at the single user level. While you can improve latency on subsequent requests by the same user for the same data (filtering/sorting done browser side), you won&#039;t see the same level of throughput increases as with public data.

Make sense?</description>
		<content:encoded><![CDATA[<p>Matt,</p>
<p>Let me just add that you&#8217;re unlikely to achieve great performance improvements when using these patterns for private data at the single user level. While you can improve latency on subsequent requests by the same user for the same data (filtering/sorting done browser side), you won&#8217;t see the same level of throughput increases as with public data.</p>
<p>Make sense?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-36048</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Tue, 24 Feb 2009 20:26:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-36048</guid>
		<description>Interesting - I get it now - thanks for the clarification. So if I deliver the symmetric key during logon, let&#039;s say, store it in a cookie (assuming current browser where CSRF attacks are mitigated) then subsequent requests can be done over HTTP and I don&#039;t worry about URL hacking because the data is encrypted. I can do GET&#039;s via AJAX to retrieve data, decrypt using the key in my cookie, and I&#039;m able to take advantage of the fundamental caching behavior of the internet and browsers, assuming I have established correct expiry policy in my HTTP headers. Is that in line with what you&#039;re proposing?

On security - yes - had a discussion the other day where the comment was &quot;if the box is owned they could do IL injection or...&quot; If the box is owned you&#039;ve got MUCH bigger problems than IL injection, my friend. :)</description>
		<content:encoded><![CDATA[<p>Interesting &#8211; I get it now &#8211; thanks for the clarification. So if I deliver the symmetric key during logon, let&#8217;s say, store it in a cookie (assuming current browser where CSRF attacks are mitigated) then subsequent requests can be done over HTTP and I don&#8217;t worry about URL hacking because the data is encrypted. I can do GET&#8217;s via AJAX to retrieve data, decrypt using the key in my cookie, and I&#8217;m able to take advantage of the fundamental caching behavior of the internet and browsers, assuming I have established correct expiry policy in my HTTP headers. Is that in line with what you&#8217;re proposing?</p>
<p>On security &#8211; yes &#8211; had a discussion the other day where the comment was &#8220;if the box is owned they could do IL injection or&#8230;&#8221; If the box is owned you&#8217;ve got MUCH bigger problems than IL injection, my friend. <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-36047</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Tue, 24 Feb 2009 19:10:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-36047</guid>
		<description>Sorry, I wasn&#039;t clear enough.

HTTPS is used only to send the key.
At that point, data is sent over plain HTTP.
The data, however, is encrypted server side using that key before being sent over HTTP.
Then the browser decrypts the data using that key.

I don&#039;t think you need to worry about performance problems on the browser - not unless you&#039;re sending large quantities of data.

The question of how secure it is, well, that&#039;s dependent on what assumptions you have of the user&#039;s box. If it&#039;s been root-kitted, all bets are off, regardless of how data gets to the user. 

Security is not a boolean thing, it&#039;s cost-benefit tradeoff just like everything else. Create a threat-model and assess solutions against it.

Is that any clearer?</description>
		<content:encoded><![CDATA[<p>Sorry, I wasn&#8217;t clear enough.</p>
<p>HTTPS is used only to send the key.<br />
At that point, data is sent over plain HTTP.<br />
The data, however, is encrypted server side using that key before being sent over HTTP.<br />
Then the browser decrypts the data using that key.</p>
<p>I don&#8217;t think you need to worry about performance problems on the browser &#8211; not unless you&#8217;re sending large quantities of data.</p>
<p>The question of how secure it is, well, that&#8217;s dependent on what assumptions you have of the user&#8217;s box. If it&#8217;s been root-kitted, all bets are off, regardless of how data gets to the user. </p>
<p>Security is not a boolean thing, it&#8217;s cost-benefit tradeoff just like everything else. Create a threat-model and assess solutions against it.</p>
<p>Is that any clearer?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-36046</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Tue, 24 Feb 2009 17:51:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-36046</guid>
		<description>Alright, so leaving banking aside - let&#039;s say it&#039;s email. I don&#039;t want something to be able to do URL hacking and see everyone else&#039;s messages by guessing unique URI&#039;s - how do I prevent that? The data is encrypted on disk and only if the authenticated user which &quot;owns&quot; that data is accessing that URI will it be decrypted and sent over HTTPS? I&#039;d worry about overloading the browser doing decrypt in javascript - is that actually performant? or secure for that matter?</description>
		<content:encoded><![CDATA[<p>Alright, so leaving banking aside &#8211; let&#8217;s say it&#8217;s email. I don&#8217;t want something to be able to do URL hacking and see everyone else&#8217;s messages by guessing unique URI&#8217;s &#8211; how do I prevent that? The data is encrypted on disk and only if the authenticated user which &#8220;owns&#8221; that data is accessing that URI will it be decrypted and sent over HTTPS? I&#8217;d worry about overloading the browser doing decrypt in javascript &#8211; is that actually performant? or secure for that matter?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-36045</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Tue, 24 Feb 2009 16:15:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-36045</guid>
		<description>Matt,

I won&#039;t get into the specifics of banking but if you want to exchange data securely over REST there are ways to do that as well.

One option is to serve sensitive data over HTTPS.

Another, more highly performing, option is to use HTTPS to send a symetric key to the browser which is then used by the client-side javascript to decrypt all data sent.

Does that help?</description>
		<content:encoded><![CDATA[<p>Matt,</p>
<p>I won&#8217;t get into the specifics of banking but if you want to exchange data securely over REST there are ways to do that as well.</p>
<p>One option is to serve sensitive data over HTTPS.</p>
<p>Another, more highly performing, option is to use HTTPS to send a symetric key to the browser which is then used by the client-side javascript to decrypt all data sent.</p>
<p>Does that help?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-36044</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Tue, 24 Feb 2009 08:35:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-36044</guid>
		<description>Udi - quick question - this technique works wonders when the data is of a public nature, but what about sensitive data, like my account history at my banking site - what would you recommend there? Say my infrastructure is messaging using NSB - do I have a local cache on the web server (object DB, etc...) that&#039;s being updated via pub-sub? Data at rest is a security liability, and I can&#039;t keep the world in-memory for large sets of data such as account history...what to do?</description>
		<content:encoded><![CDATA[<p>Udi &#8211; quick question &#8211; this technique works wonders when the data is of a public nature, but what about sensitive data, like my account history at my banking site &#8211; what would you recommend there? Say my infrastructure is messaging using NSB &#8211; do I have a local cache on the web server (object DB, etc&#8230;) that&#8217;s being updated via pub-sub? Data at rest is a security liability, and I can&#8217;t keep the world in-memory for large sets of data such as account history&#8230;what to do?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35990</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 30 Jan 2009 17:12:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35990</guid>
		<description>Blake,

Since ISPs pay for bandwidth, they cache what they can to save on it. That isn&#039;t all there is to being an intermediary, but still something you can take advantage of.</description>
		<content:encoded><![CDATA[<p>Blake,</p>
<p>Since ISPs pay for bandwidth, they cache what they can to save on it. That isn&#8217;t all there is to being an intermediary, but still something you can take advantage of.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: blakenyquist</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35959</link>
		<dc:creator>blakenyquist</dc:creator>
		<pubDate>Sat, 24 Jan 2009 21:45:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35959</guid>
		<description>Udi, great article. Some very cool stuff to think about. One thing I guess I don&#039;t completely follow is relying on these Internet intermediaries you mentioned. Is it really that common for ISPs to offer that kind of caching just be &quot;telling&quot; them to do so via HTTP? Your description made me think more of content distribution networks like Akamai and such.

I did some poking around via Google to try to get a better understanding of who are the actual intermediaries you might have been referring to. I found a bunch of articles on the liabilities of being an intermediary instead. So, I&#039;m still scratching my head a little bit. Perhaps, an article more on the specifics of making use of intermediaries? At any rate, keep writing!

Thanks,
BN</description>
		<content:encoded><![CDATA[<p>Udi, great article. Some very cool stuff to think about. One thing I guess I don&#8217;t completely follow is relying on these Internet intermediaries you mentioned. Is it really that common for ISPs to offer that kind of caching just be &#8220;telling&#8221; them to do so via HTTP? Your description made me think more of content distribution networks like Akamai and such.</p>
<p>I did some poking around via Google to try to get a better understanding of who are the actual intermediaries you might have been referring to. I found a bunch of articles on the liabilities of being an intermediary instead. So, I&#8217;m still scratching my head a little bit. Perhaps, an article more on the specifics of making use of intermediaries? At any rate, keep writing!</p>
<p>Thanks,<br />
BN</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35953</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 24 Jan 2009 13:50:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35953</guid>
		<description>mknopf,

Glad you liked it.
More are coming :)</description>
		<content:encoded><![CDATA[<p>mknopf,</p>
<p>Glad you liked it.<br />
More are coming <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mknopf</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35952</link>
		<dc:creator>mknopf</dc:creator>
		<pubDate>Fri, 23 Jan 2009 15:36:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35952</guid>
		<description>great article. It&#039;s nice to see a real world example proving that REST, the architecture of the Web itself, can be implemented at the single-application level to circumvent show-stopping performance and scalability issues without the common &quot;throw more hardware at it&quot; resolution schema (a.k.a i&#039;ll force you to spend TONS more money to try and band-aide the situation caused by my poor architecture choice)</description>
		<content:encoded><![CDATA[<p>great article. It&#8217;s nice to see a real world example proving that REST, the architecture of the Web itself, can be implemented at the single-application level to circumvent show-stopping performance and scalability issues without the common &#8220;throw more hardware at it&#8221; resolution schema (a.k.a i&#8217;ll force you to spend TONS more money to try and band-aide the situation caused by my poor architecture choice)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35950</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 21 Jan 2009 10:07:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35950</guid>
		<description>James,

The problem that I&#039;ve found when &quot;an organization is adopting SOAP&quot;, is that it is purely technical change. While there may be some value in technical standardization, especially around application integration, no &quot;quantum leaps&quot; will come from it - definitely not IT Business alignment.

Only from asking the business about the semantics of their data and processes, and working with them in refining those models, can intelligent, business viable, technical decisions be made.

At that point, well, the right tool can be used for the right job - be that REST, SOAP, or flat files.

Thanks for all your comments.</description>
		<content:encoded><![CDATA[<p>James,</p>
<p>The problem that I&#8217;ve found when &#8220;an organization is adopting SOAP&#8221;, is that it is purely technical change. While there may be some value in technical standardization, especially around application integration, no &#8220;quantum leaps&#8221; will come from it &#8211; definitely not IT Business alignment.</p>
<p>Only from asking the business about the semantics of their data and processes, and working with them in refining those models, can intelligent, business viable, technical decisions be made.</p>
<p>At that point, well, the right tool can be used for the right job &#8211; be that REST, SOAP, or flat files.</p>
<p>Thanks for all your comments.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Leigh</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35947</link>
		<dc:creator>James Leigh</dc:creator>
		<pubDate>Mon, 19 Jan 2009 18:15:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35947</guid>
		<description>I agree that a successful SOA requires a strong emphasis on the data. Too often when an organization is adopting SOAP - everything is through SOAP, and unfortunately SOAP does not carry the same caching and validation that REST does. In this case, a basic SOAP service would not take advantage of the infrastructure that is part of the Web and therefore could not scale as well as this REST solution. Further more, the nice thing about a solution like this, is that works equally well over the Internet or within an enterprise&#039;s intranet.</description>
		<content:encoded><![CDATA[<p>I agree that a successful SOA requires a strong emphasis on the data. Too often when an organization is adopting SOAP &#8211; everything is through SOAP, and unfortunately SOAP does not carry the same caching and validation that REST does. In this case, a basic SOAP service would not take advantage of the infrastructure that is part of the Web and therefore could not scale as well as this REST solution. Further more, the nice thing about a solution like this, is that works equally well over the Internet or within an enterprise&#8217;s intranet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35940</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 09 Jan 2009 14:26:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35940</guid>
		<description>James,

This actually has little to do with SOA, which also requires a strong emphasis on the data and how it can be partitioned.

To your question, the intermediary caching is a part of the internet, not intranet.</description>
		<content:encoded><![CDATA[<p>James,</p>
<p>This actually has little to do with SOA, which also requires a strong emphasis on the data and how it can be partitioned.</p>
<p>To your question, the intermediary caching is a part of the internet, not intranet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Leigh</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35938</link>
		<dc:creator>James Leigh</dc:creator>
		<pubDate>Thu, 08 Jan 2009 15:23:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35938</guid>
		<description>Thanks for the post!

This reinforces to me why SOA projects often ends up failing, because there is not enough emphasis on the data and how it can be partitioned. It also highlights why REST scales so well - caching and cache validation are built right into the protocol.

Did you add any of your own intermediaries for caching or was the intermediary caching happening as part of existing Intranet infrastructure?</description>
		<content:encoded><![CDATA[<p>Thanks for the post!</p>
<p>This reinforces to me why SOA projects often ends up failing, because there is not enough emphasis on the data and how it can be partitioned. It also highlights why REST scales so well &#8211; caching and cache validation are built right into the protocol.</p>
<p>Did you add any of your own intermediaries for caching or was the intermediary caching happening as part of existing Intranet infrastructure?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cloudomo. &#8250; Using REST to Scale</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35929</link>
		<dc:creator>Cloudomo. &#8250; Using REST to Scale</dc:creator>
		<pubDate>Mon, 05 Jan 2009 08:06:36 +0000</pubDate>
		<guid isPermaLink="false">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>[...] 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 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35922</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 03 Jan 2009 23:21:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/#comment-35922</guid>
		<description>Ofer,

I&#039;ve found that when big numbers are involved, it&#039;s important to get percentages accurate by measuring to understand the exact scope of any impact.

Next, we&#039;re careful not to throw the baby out with the bath water. The business is the one that decides what&#039;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&#039;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 &#8211; 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>By: stefan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35921</link>
		<dc:creator>stefan</dc:creator>
		<pubDate>Sat, 03 Jan 2009 16:48:32 +0000</pubDate>
		<guid isPermaLink="false">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>By: Ofer Heijmans</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35919</link>
		<dc:creator>Ofer Heijmans</dc:creator>
		<pubDate>Fri, 02 Jan 2009 23:55:44 +0000</pubDate>
		<guid isPermaLink="false">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 &quot;are you not in Londong?&quot; 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 &quot;cost&quot; of customer issues for 50,000 unhappy customers or more for which you hurt their experience compared the the tradition &quot;web method&quot; 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 &#8211; 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 &#8211; Love your articles &#8211;<br />
Ofer</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35917</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 02 Jan 2009 21:13:50 +0000</pubDate>
		<guid isPermaLink="false">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>By: udidahan</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35916</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 02 Jan 2009 21:12:38 +0000</pubDate>
		<guid isPermaLink="false">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 &#8211; absolutely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Jack</title>
		<link>http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/comment-page-1/#comment-35915</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Fri, 02 Jan 2009 14:05:10 +0000</pubDate>
		<guid isPermaLink="false">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&#039;ve got layered resources then there&#039;s no reason that you can&#039;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>
</channel>
</rss>
