Interesting technology. A couple of questions:1. The ApplicationInstance is stored in the user's HTTP session. Is this perhaps too heavyweight and will affect an Echo2 app's ability to scale up?
In short yes. The components that make up and Echo2 app are chained together into a component hierarchy and stored in the session.
Having just completed a "large scale web app" design course then having large HttpSession's is considered bad practice.
If you consider that largish HttpSessions are bad, then Echo2 is the not sort of framework you should use if you are trying to rebuild EBAY. The same goes for JSF or Tapestry, because they build "component trees" and store them on a per user basis.
BUT if you need a very well defined web application environment that allows for a richer user experience, and your user demographics are "reasonable" then I highly recommend Echo2.
2.By never replacing the original window, it appears the problem of the "back" button is solved because there is never a back button displayed (no comment on whether or not breaking the "web" experience is good or not, but I understand that this solves some nasty problems). But if the window is accidentally "closed", can the app be relaunched and pick up where it was left off? This wasn't clear to me from reading the docs.
Yes. The back button takes you back to the page before the Echo2 app started. If you presse forward from there, you et back to the last state of the Echo2 app.
As for closing windows accidently, as long as you dont close your browser completely (and hence the session cookie is lost) then it will display up to the last "state point".
3. Any metrics on how chatty AJAX apps like this affect Servlet container performance?
Thats the million dollar question. I dont think that AJAX has been in production long enough for people to know this.
I would be interested in other peoples views on AJAX request performance.