<?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: Stateless Applications are an Illusion</title>
	<atom:link href="http://codemonkeyism.com/stateless-applications-illusion/feed/" rel="self" type="application/rss+xml" />
	<link>http://codemonkeyism.com/stateless-applications-illusion/</link>
	<description></description>
	<lastBuildDate>Wed, 09 May 2012 22:39:34 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Stateful or Stateless? &#171; IT Primer</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-782681</link>
		<dc:creator>Stateful or Stateless? &#171; IT Primer</dc:creator>
		<pubDate>Thu, 08 Dec 2011 03:21:42 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-782681</guid>
		<description>[...] stateless applications are an illusion. A comment to that post nails it: “stateless applications are no applications, they are … ummm [...]</description>
		<content:encoded><![CDATA[<p>[...] stateless applications are an illusion. A comment to that post nails it: “stateless applications are no applications, they are … ummm [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PaaS, much ado about network services &#171; Rob Hirschfeld&#39;s Blog</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-330488</link>
		<dc:creator>PaaS, much ado about network services &#171; Rob Hirschfeld&#39;s Blog</dc:creator>
		<pubDate>Wed, 22 Sep 2010 15:35:07 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-330488</guid>
		<description>[...] an application can be written as stateless code (really “externalized state” is more a accurate description) that relies on these services for [...]</description>
		<content:encoded><![CDATA[<p>[...] an application can be written as stateless code (really “externalized state” is more a accurate description) that relies on these services for [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AJ</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-282062</link>
		<dc:creator>AJ</dc:creator>
		<pubDate>Wed, 07 Apr 2010 19:42:32 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-282062</guid>
		<description>I think that Wicket is a perfect framework for holding state in the web tier. It is also possible in Wicket to make your own page store (thing that keeps state) and possible to make a Redis implementation (isn&#039;t that already available).</description>
		<content:encoded><![CDATA[<p>I think that Wicket is a perfect framework for holding state in the web tier. It is also possible in Wicket to make your own page store (thing that keeps state) and possible to make a Redis implementation (isn&#8217;t that already available).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-281010</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Sat, 03 Apr 2010 05:29:48 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-281010</guid>
		<description>@Vic:

You: &quot;Stephan, Why do not save session state on client side if you [...]&quot;

To quote the article: &quot;1. Best state store: Client (window.name hack, Javascript variables for AJAX applications Cookies)

Cheers
Stephan</description>
		<content:encoded><![CDATA[<p>@Vic:</p>
<p>You: &#8220;Stephan, Why do not save session state on client side if you [...]&#8221;</p>
<p>To quote the article: &#8220;1. Best state store: Client (window.name hack, Javascript variables for AJAX applications Cookies)</p>
<p>Cheers<br />
Stephan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-281007</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Sat, 03 Apr 2010 05:29:05 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-281007</guid>
		<description>@Subbu: They run all without holding any state? How is that? (which fields should be sorted, auto safe, ...)

Gmail has extensive state, I guess holding it in JS variables as mentioned in the post. I don&#039;t use other web email apps, perhaps you could point me to one without any state holding?</description>
		<content:encoded><![CDATA[<p>@Subbu: They run all without holding any state? How is that? (which fields should be sorted, auto safe, &#8230;)</p>
<p>Gmail has extensive state, I guess holding it in JS variables as mentioned in the post. I don&#8217;t use other web email apps, perhaps you could point me to one without any state holding?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Subbu Allamaraju</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-281005</link>
		<dc:creator>Subbu Allamaraju</dc:creator>
		<pubDate>Sat, 03 Apr 2010 05:18:25 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-281005</guid>
		<description>+1 to Stefan Tilkov&#039;s comment. There are a lot of really large-scale apps (emails, shopping carts) are running fine without doing any of the hacks you mention. Sessions do not scale. The tradeoffs shouldn&#039;t be taken lightly.</description>
		<content:encoded><![CDATA[<p>+1 to Stefan Tilkov&#8217;s comment. There are a lot of really large-scale apps (emails, shopping carts) are running fine without doing any of the hacks you mention. Sessions do not scale. The tradeoffs shouldn&#8217;t be taken lightly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vic</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280847</link>
		<dc:creator>Vic</dc:creator>
		<pubDate>Fri, 02 Apr 2010 14:01:53 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280847</guid>
		<description>Stephan, Why do not save session state on client side if you need cheap solution for scalability. If state is on client side you can redirect client from one node to another easily and without any consequences.</description>
		<content:encoded><![CDATA[<p>Stephan, Why do not save session state on client side if you need cheap solution for scalability. If state is on client side you can redirect client from one node to another easily and without any consequences.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280824</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Fri, 02 Apr 2010 12:15:17 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280824</guid>
		<description>@Tim: Depends what you want. If you want the person to have two browser see each other, key the data the user, not the session ID. If you don&#039;t, then have seperate sessions. What the product managers wants, two conversations or one conversation in two browser windows. But going with a seperate session store (like memcache) doesn&#039;t solve your problems magically, you still need to think what you want. 

As I&#039;ve said, keeping state as close as possible to the client is best, so a cookie or the page works fine, the page is often hard though, and often leads to ugly URLs (most people do not want that) or to a lot of POST requests (which break the back button).</description>
		<content:encoded><![CDATA[<p>@Tim: Depends what you want. If you want the person to have two browser see each other, key the data the user, not the session ID. If you don&#8217;t, then have seperate sessions. What the product managers wants, two conversations or one conversation in two browser windows. But going with a seperate session store (like memcache) doesn&#8217;t solve your problems magically, you still need to think what you want. </p>
<p>As I&#8217;ve said, keeping state as close as possible to the client is best, so a cookie or the page works fine, the page is often hard though, and often leads to ugly URLs (most people do not want that) or to a lot of POST requests (which break the back button).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim Jansen</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280799</link>
		<dc:creator>Tim Jansen</dc:creator>
		<pubDate>Fri, 02 Apr 2010 09:53:44 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280799</guid>
		<description>I don&#039;t think that losing the state in the server is the main problem, but rather implementing it correctly. Back buttons, reloads, double clicks on links/buttons and sometimes even new tabs are all working fine in multi-page forms as long as you keep all conversational state in the form as hidden fields. But when you store things on the server, you need to deal with them  (undo parts of the conversation, or even duplicate the conversational state and open a second conversation). 
Are there any frameworks that handle this correctly?</description>
		<content:encoded><![CDATA[<p>I don&#8217;t think that losing the state in the server is the main problem, but rather implementing it correctly. Back buttons, reloads, double clicks on links/buttons and sometimes even new tabs are all working fine in multi-page forms as long as you keep all conversational state in the form as hidden fields. But when you store things on the server, you need to deal with them  (undo parts of the conversation, or even duplicate the conversational state and open a second conversation).<br />
Are there any frameworks that handle this correctly?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280752</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Fri, 02 Apr 2010 05:52:25 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280752</guid>
		<description>@Vic: Contrary, if you want to scale cheap, you need to use web-tier state, scaling with the &quot;rails-memcache-state-model&quot; will cost you dearly in servers.</description>
		<content:encoded><![CDATA[<p>@Vic: Contrary, if you want to scale cheap, you need to use web-tier state, scaling with the &#8220;rails-memcache-state-model&#8221; will cost you dearly in servers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vic</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280749</link>
		<dc:creator>Vic</dc:creator>
		<pubDate>Fri, 02 Apr 2010 05:42:11 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280749</guid>
		<description>Look at &quot;Fallacies of Distributed Computing&quot; http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing. If you do not want to have headache, try to avoid session state on server side if you have to support scalability.</description>
		<content:encoded><![CDATA[<p>Look at &#8220;Fallacies of Distributed Computing&#8221; <a href="http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing" rel="nofollow">http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing</a>. If you do not want to have headache, try to avoid session state on server side if you have to support scalability.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280747</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Fri, 02 Apr 2010 05:35:26 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280747</guid>
		<description>@Itay: Yes (1) does not scale - neither for users, nor for the complexity of the code in multi-page applications</description>
		<content:encoded><![CDATA[<p>@Itay: Yes (1) does not scale &#8211; neither for users, nor for the complexity of the code in multi-page applications</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Itay Maman</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280742</link>
		<dc:creator>Itay Maman</dc:creator>
		<pubDate>Fri, 02 Apr 2010 05:16:46 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280742</guid>
		<description>I think that in general case, statlessness (as advocated by functional programming) is an illusion. When you&#039;re absolutely stateless every cycle of interaction of the user with app (be it a web-app, a GUI app, whatever) requires:

(1) That the entire data relevant for the processing be specified as a parameter(s);

(2) That the entire output (incl. UI elements, DB  records, whatever) will be returned as a result

I&#039;m afraid that upholding these requirements is not feasible (and, alas, will not be feasible even if when our frameworks/languages evolve). You do not want to encode every tiny state of the UI as a parameter that is passed to the interaction. If encode the entire state of the app and return it as a result interaction of one user will not be seen by the next user.</description>
		<content:encoded><![CDATA[<p>I think that in general case, statlessness (as advocated by functional programming) is an illusion. When you&#8217;re absolutely stateless every cycle of interaction of the user with app (be it a web-app, a GUI app, whatever) requires:</p>
<p>(1) That the entire data relevant for the processing be specified as a parameter(s);</p>
<p>(2) That the entire output (incl. UI elements, DB  records, whatever) will be returned as a result</p>
<p>I&#8217;m afraid that upholding these requirements is not feasible (and, alas, will not be feasible even if when our frameworks/languages evolve). You do not want to encode every tiny state of the UI as a parameter that is passed to the interaction. If encode the entire state of the app and return it as a result interaction of one user will not be seen by the next user.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280735</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Fri, 02 Apr 2010 04:51:12 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280735</guid>
		<description>@JeanHuguesRobert: Which means in a conversation state store on the server? The variables are just an abstraction for that (not that this is bad)</description>
		<content:encoded><![CDATA[<p>@JeanHuguesRobert: Which means in a conversation state store on the server? The variables are just an abstraction for that (not that this is bad)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Alexiuc</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280683</link>
		<dc:creator>Daniel Alexiuc</dc:creator>
		<pubDate>Fri, 02 Apr 2010 00:56:06 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280683</guid>
		<description>The server side Web tier *used* to be the &#039;easiest&#039; place to store state, simply because there were many very popular web frameworks to enable this - written by people who really didn&#039;t think hard enough about the problem.

It doesn&#039;t change the fact though that it is the &quot;worst&quot; place to store web application state. Web application state belongs on the client, and thankfully there are now many client side frameworks that help with this.</description>
		<content:encoded><![CDATA[<p>The server side Web tier *used* to be the &#8216;easiest&#8217; place to store state, simply because there were many very popular web frameworks to enable this &#8211; written by people who really didn&#8217;t think hard enough about the problem.</p>
<p>It doesn&#8217;t change the fact though that it is the &#8220;worst&#8221; place to store web application state. Web application state belongs on the client, and thankfully there are now many client side frameworks that help with this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JeanHuguesRobert</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280652</link>
		<dc:creator>JeanHuguesRobert</dc:creator>
		<pubDate>Thu, 01 Apr 2010 22:10:08 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280652</guid>
		<description>It has always been strange to me that, because HTTP is not a connection oriented protocol, as a result applications should be stateless too.

It is like removing local variables from all computer languages, expecting developpers to build massive finite state machine, or, even more difficult, pushdown automaton.

Seaside put them back with the notion of modal http server. AFAIK the state is where it belongs, in the stack, in local variables.</description>
		<content:encoded><![CDATA[<p>It has always been strange to me that, because HTTP is not a connection oriented protocol, as a result applications should be stateless too.</p>
<p>It is like removing local variables from all computer languages, expecting developpers to build massive finite state machine, or, even more difficult, pushdown automaton.</p>
<p>Seaside put them back with the notion of modal http server. AFAIK the state is where it belongs, in the stack, in local variables.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280639</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Thu, 01 Apr 2010 21:18:27 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280639</guid>
		<description>@Stefan: As most often - you are right

@Stefan: I beg to differ, putting to a session scoped resource like a basket, stored in a database, is just that: tansient communication/conversation state, everything are just word games.

Cheers Stephan</description>
		<content:encoded><![CDATA[<p>@Stefan: As most often &#8211; you are right</p>
<p>@Stefan: I beg to differ, putting to a session scoped resource like a basket, stored in a database, is just that: tansient communication/conversation state, everything are just word games.</p>
<p>Cheers Stephan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan Tilkov</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280623</link>
		<dc:creator>Stefan Tilkov</dc:creator>
		<pubDate>Thu, 01 Apr 2010 20:22:44 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280623</guid>
		<description>IMO, in a Web app, each individual request should contain enough information to be processable independently of whether or not a previous request did or did not occur. Persistent server-side resource state is fine, client-side state is fine, transient communication (session) state isn&#039;t because it&#039;ll ruin scalability and bookmarkability, one way or the other.</description>
		<content:encoded><![CDATA[<p>IMO, in a Web app, each individual request should contain enough information to be processable independently of whether or not a previous request did or did not occur. Persistent server-side resource state is fine, client-side state is fine, transient communication (session) state isn&#8217;t because it&#8217;ll ruin scalability and bookmarkability, one way or the other.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan Schubert</title>
		<link>http://codemonkeyism.com/stateless-applications-illusion/comment-page-1/#comment-280605</link>
		<dc:creator>Stefan Schubert</dc:creator>
		<pubDate>Thu, 01 Apr 2010 19:14:20 +0000</pubDate>
		<guid isPermaLink="false">http://codemonkeyism.com/?p=1734#comment-280605</guid>
		<description>If you define it that way as you do your headline should be &quot;stateless applications are no applications, they are ... ummm ... static&quot;

Cheers :-)
Stefan</description>
		<content:encoded><![CDATA[<p>If you define it that way as you do your headline should be &#8220;stateless applications are no applications, they are &#8230; ummm &#8230; static&#8221;</p>
<p>Cheers :-)<br />
Stefan</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)
Database Caching using disk
Object Caching 523/524 objects using disk

Served from: codemonkeyism.com @ 2012-05-22 22:07:05 -->
