Clemens Vasters posted a great article on what’s really behind a Service Oriented Architecture from the implementation standpoint. He makes some very astute points about why schemas are important for expressing service contracts, and what the implications of SOA are on implementing scalable solutions. Having wrestled a bit with this myself, I agree with his conclusion that old-school OOD is not the way to approach this particular problem. Also, with regards to the stateful vs. stateless issue, I really like his take:
Ruling out that state is implicitly shared between services (in memory or on disk) is a direct consequence from this and also serves the scalability purpose, because it further eliminates co-location assumptions about services and enables clustering. Note that this isn’t about “stateless” or “stateful”. Everything is stateful while it runs.