>
> I am not sure whether I get your interaction correctly.  What types of
> things would have to be dealt with between users that are not done
> through persistent state?

By interaction I just mean recording user relationships, like when one
user records another user as a friend on slashdot. They'll be a
'friend' table with two foriegn keys.

In my naive idea of things each machine would be equivalent to the
others. They would each have Webserver->Rails->Database. Interactions
between users means recording a new relationship between two users,
normally quite straightforward on a single database, but requiring
inter-machine communication and a certain amount of fiddling about
where the user accounts are on different machines/database-backends.
Two-phase commmit comes to mind, but I intend to work around the lack
of that.

In other words I'm shifting the scalability problem to the network
(routing, switches etc). I may also address the networking problem, in
the distant future, by migrating accounts based on usage patterns so
that user "interactions" will tend to be local to one machine.
Obviously that is a strategy with some interesting problems to be
solved, as you can probably immediately guess at, which I am looking
forward to.

> > Thanks for your words of wisdom,
>
> Just a quickie as I'm on my way out: your Drbing will certainly hurt
> horizontal scalability - apart from the issue of finding instances etc.

Do you think that my answer above addresses that?

> It's probably also ok to assume some session stickiness as load
> balancing routers can do that (for example based on IP) and this seems a
> fairly common scenario.  If not, you need some mechanism to make session
> information available to all app servers (either via the backend store
> or via some other mechanism).

Definately. I have had this in mind. Perhaps ultimately I would end up
with two (or more) domain (as in data) databases, one session
database, one proxy-redirection database, and the proxy-redirector
itself. And one day each running on their own machines. Right now I am
imagining several vmware instances to allow for developement.