This post originated from an RSS feed registered with .NET Buzz
by Udi Dahan.
Original Post: Components, not dead, done?
Feed Title: Udi Dahan - The Software Simplist
Feed URL: http://feeds.feedburner.com/UdiDahan-TheSoftwareSimplist
Feed Description: I am a software simplist. I make this beast of architecting, analysing, designing, developing, testing, managing, deploying software systems simple.
This blog is about how I do it.
What with all the craze of SOA, although few have been heralding the death of components as first-class architectural citizens, I hardly hear/read about them anymore. It's surprising, really, since components were really good for certain things, things that services turn out to be really lousy at. Take transactions, for instance, there's nothing more natural than flowing your transaction context between components. With services, on the other hand, it is considered an abomination (and rightly so). While I don't intend to get into an in depth discussion on services vs components - why and where, I think that this small rule-of-thumb is useful:
If you need ACID - you need components, not services.
Believe me, you do NOT want to go about implementing compensating transactions everywhere. So, even though components may not be sexy anymore, and SOAs are being implemented right, left, and center, don't throw the baby out with the bathwater.