I’ve been wondering about this for a while. We hear about how the more popular web frameworks can scale with an n-tier architecture, but what about Seaside? Session state is maintained inside of the Squeak image, and unlike other web frameworks it does not save session state to a database. I imagine it lacks that capability at this point.
The more popular web frameworks gain scalability by allowing you to configure them so they save state to a database or some other form of persistence that is universally available to all of the web servers in a farm. This way the same application can be installed on multiple servers, and a load balancer can assess how busy any server is and switch a client to a server that is less busy, even while the user is in the middle of using the application, while still maintaining application state for that client. This is done so that everyone can have their requests answered in a reasonable amount of time without bringing a server to its knees.
Ramon Leon at On Smalltalk has made a good start at providing an answer on how to scale Seaside. His answer is to run multiple Squeak images at the same time, and have a load balancer choose which image a client is directed to. After that point the client will continue to interact with the image that was chosen for it, without switching to other images in mid-use. He called this a “sticky session” scheme. He provides some details about how to set this up, but since the load balancing scheme he’s using is very similar to how Ruby on Rails (RoR) is load balanced he directs people to look up on the web how it’s done for RoR. RoR and Seaside are similar in that both run their own simple http servers. I’m not sure if RoR’s server has a name, but Seaside’s is called “Comanche”. Since they both have a similar http setup it’s possible to use the same load balancing software with both.
He goes into detail describing his maintenance tools (shell scripts), since there are some reliability issues with the software he uses. He has no major complaints with it though.
I’m real happy Ramon talked about this. He is answering the questions anyone curious about Seaside would have about the viability of deploying it in a corporate environment. Keep up the good work, Ramon.