Service oriented architectures are getting more and more widespread popularity, because of the benefits they offer. They have some design requirements though, a very important one of them is designing services (and their combinations) for scalability and resilience. We at Ustream built a couple of scalable systems in the past years and learned a lot about how to do it and what open source tools are available to work with.
In this talk I will describe the most important requirements of scalability, then our experience in the following areas and some others: * stateless applications * monitoring * load balancing * dynamic resource usage * deployment * service isolation, circuit breakers