Question

I've never seen SOA talked about in concrete terms, but given the success of SOAs in companies like Amazon and Netflix, is there an (kind of) industry standard for how small should the scope of a service be?

For instance, given an community site, would a likely suite of services look like:

  1. Queue Service
  2. Markdown Proccessing Service
  3. User Authentication Service
  4. Session Management
  5. Front End Service (Nginx, HAProxy, etc)
  6. Application Logic Service
  7. Persistent Storage Service
  8. Caching Service
  9. Spam Checking Service

Or do you combine similar services, such as merging markdown processing into the Application Logic?

Was it helpful?

Solution

Essentially you put a service boundary on things that you want to be able to change separately (the same "single responsibility principle" you know from OO)- The size of a service should be so that its utility (i.e. the benefit you get from it) be more than the overhead it creates.

You can find a PDF I wrote, that explains this in more detail here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top