Response to Clemens, part 2

I know, it was a trap. Clemens was just being a bit extreme in order to get some discussion going here. Anyway, I feel obliged not to let Clemens feel disappointed so I'll continue what I started in this post. I'm VERY interested in SOA and want to learn more. In order to keep the discussion going, I'll play devil's advocate...

Oh, before I forget, Philip Nelson wrote a great comment here that almost made me not write a second post about this subject, but here it is anyway.
  • Assume that the domain model is a local one for the consumer, and the consumer orchestrates lots of the functionality by calling different services. In this case I think encapsulation and inheritance in that local domain model could well be just great.

  • I've heard several times that the services according to SOA get very small and fine grained. That's because services are like fractals, they are built up of smaller services, recursively. But do you really want the services to be extremely fine grained? For example, wouldn't it be a bad thing when it comes to, say, compensating transactions? At least that's my gut feeling right now.

    Another example is the first service tenet (discussed here) about service boundaries that are always potentially expensive to pass. If you take it that far, then extremely fine grained services might cost too much regarding performance. A wild guess is that we will come to the conclusion that not too fine grained and not too coarse grained is the best.

  • In response to Clemens' post, some people recommended long switch statements on types as a good solution. I think it's considered a smelly solution in the OO community. How can it be avoided? Often with polymorphism (which in all fairness doesn't have to use code inheritance).

  • What is OO good for? I think it's good for dealing with complexity. If you don't have a complex scenario (typically regarding behavior), then you don't benefit very much from OO.

  • To prove that I'm not a turncoat I want to point out a past post of mine here.

    Oh, and if you are interested in this discussion make sure you don't miss the posts from Udi Dahan and Steven Eichert either. Their posts aren't in the comments to Clemens' posts. You find them here and here.

    Finally, I like this post at Richard Turner's weblog a lot. It's not SOA or Domain Model. They complement one another! (If you read the comments, you might get the feeling that Richard is pretty anti-Domain Model after all, but I forgive him.) From now on I consider that post by Richard to state the official MS standpoint. Or was it just another trap?