Every experienced Rails developer understands the need to break that monolithic application into smaller, manageable components. Unfortunately, most seasoned developers envision nightmares of SOAP, RPC, DCOM, CORBA, Web Services, DDS, and WCF when they hear the word "services."
How do we build a lean confederation of applications without falling into the same traps that gave the phrase SOA such a bad name? We'll look at the following topics:
Knowing when it's appropriate to build as an SOA
The pitfalls of maintaining distributed systems
Using the right framework (and language) for the job
Patterns and techniques for developing resilient and easy to maintain SOAs
Decoupling services through queues and gateways
Clear patterns for painlessly testing services
This talk is a distillation of our experiences running large distributed systems at Engine Yard and the Southern California Earthquake Detection Center.