Drinking The Erlang Kool-Aid
Posted: May 21st, 2008 | Author: kevin | Filed under: Erlang | View CommentsI’m writing this from the May meeting of raleigh.rb. James Robertson, of Cincom is giving a presentation on the merits of Smalltalk and Seaside. Most of his presentation is the standard Smaltalk boiler-plate stuff I’m already familiar with but there are a few nuggets.
Like scaling Seaside-based apps. When James was using DabbleDB as an example of a large-scale Seaside app someone from the audience asked “how do you scale out a Seaside app?”
The solution James described which, frankly, struck me as Ugly with a capital ‘U’. The gist of their scaling solution is to run many virtual machines — think VM as in VMWare not a Smalltalk VM. Each virtual machine hosts a fixed number of Smalltalk images. Each unique user is routed to their own Smalltalk image. Once assigned, a user sticks to their Smalltalk image via session affinity.
Eww.
I must be drinking the Erlang Kool-Aid because the setup described seems, well, just wrong. What happens if there aren’t enough virtual machines? What happens if there aren’t enough Smalltalk images? What happens if a user blows out the memory footprint for their Smalltalk image?
I’ve been spoiled by Erlang’s seamless distribution mechanisms and OTP’s robust fault-tolerance. For large-scale deployments using anything else seems, well, kind of hackish.