[erlang-questions] Twoorl: an open source Twitter clone

Dominic Williams <>
Wed Jun 4 00:06:18 CEST 2008

Hi Joe,

> It would be a zillion times easier if the *client* did
> all this messing around. If the client knew about N
> server address it could automatically redirect to a 
> different server if the primary server failed. if the
> client knew about N machines and performed the md5(Key) 
> calculation to find the correct machine then the problem
> would be very easy to solve with no messing around in the
> server.

Indeed, and I've used this strategy in the past on systems 
in which we were responsible for both client and server.

It has one problem, though, which is if the network is not 
completely reliable and can become partitioned - different 
clients can end up using different servers, resulting in an 
inconsistent state. The way around this - leader election - 
works nicely in small systems but surely it doesn't scale to 
millions of clients?

> The next step is (ovf course) to allow all the clients to
> collectively behave as if they were as server - I think
> therefore that the problem is really one about the base
> level of a P2P architecture and not about a twitter
> architecture per se.

I agree - but P2P architectures come with their own lot 
problems (firewalls, heterogenous clients, the legal issues 
related to innocent users storing someone else's illegal 
data, etc.)

So I think you're right to stress that we probably need to 
talk actual numbers, and think about a "sufficiently 
scalable" architecture rather than an infinitely scalable one.


Dominic Williams


More information about the erlang-questions mailing list