I’m working on the BETA code for the anti-spam service these days, and I was trying to get things moving a bit faster and smoother.
I have had my servers doing distributed processing on a random basis, choosing a random node to send a process to for completion. I just setup a way that each node knows a weight for all the other nodes. Now, even though it is still random, the server with a higher weight get more of the load.
I also started using ETS to keep certain data in memory. While I had been doing this for a while, I just added a few scripts to load the entire data set into memory as the nodes start. It take a second to load, but the speed in processing is much greater.
I keep finding things in Erlang that are so well thought out and designed that I know I couldn’t do it any better. Plus they are already there. It’s really a matter of going through all of the (lousy) documentation and figuring out what is there so that you know when you might want to use it.
Of course I tend to find it after I’ve already solved it on my own and end up rewriting code, but everyone has their own method.