views:

318

answers:

1

With an abundance of frameworks for Java Enterprise Service Bus(OpenESB, ServiceMix, Apache Synapse, ...), which one should be selected for new projects? What are the pros and cons for each one? How well have they worked for you?

+3  A: 

Personally, I'm not a fan of ESB. Your first step should be to have a portfolio of services available that tile the space of the business problem you're trying to solve. If you've partitioned the problem well, I'd bet that an ESB isn't helpful.

They tend to become a single point of failure that forces too much knowledge about the inner workings of the services (e.g., compensating operations to manage transactions) outside the services.

"Architects" tend to love them because they think they can solve problems with tools.

Don't end up creating an Egregious Spaghetti Box

But if you must, I'd recommend Spring for its integration with Mule.

duffymo
ESB is quite handy if you have to connect existing (legacy) systems. But I agree, I wouldn't choose an ESB for a new system too.
Andreas_D
Message queues will do just as well. ESB usually serves two purposes: messaging and routing. It's just not the only way, IMO.
duffymo