Question: We are developing an application integrator which sends requests to various webservices simultaneously, aggregate data return by each webservice and format it to display on UI. Each webservice may have proprietary xml format. Also we don't wont to compromise user experience.

We identified ESB(Servicemix/Mule) and Async Http Client for this requirement.

Can anyone suggest which would be better option? Async Http Client seems good fit as it is lightweight over servicemix.

Thanks,
Amit Patel

Answer: 
you can also just use [Apache Came](http://camel.apache.org)l for this...

It supports a wide range of [components](http://camel.apache.org/components.html) and [messaging patterns](http://camel.apache.org/enterprise-integration-patterns.html), is lightweight and has a flexible deployment model (standalone, spring, maven, webapp, OSGi, etc).
eh, we did a productivity test on coding pure java vs. ESB (mule and spring integration). We had 3 developers do the same thing in all 3 versions (mule, SI, and just pure java with no ESB). They finsihed 6 times faster when not using an ESB and we gave alot of things in the problem that would leverage the ESB, but in the end it did not help....all the xml coding and confusion of the api usages led to really unproductive development teams. Not only that, it is hard to find ESB developers on the market as well. 

NOTE: We even took an advanced spring integration guy that had been doing it and he also was faster in pure java to complete the code. He loved spring integration and after taking my test, he changed his mind.

ie. be warned of the huge productivity loss that using the wrong framework can cause. 6 times is a huge penalty. I mean 1 month vs. 6 months is a big difference.

A 6 times productivity loss is worth taking one week out and doing your own developer productivity test. Some argued with me that they didn't know the framework yet which is why we got an advanced spring integration guy to take the test.

Also, make sure your test takes at least an hour or so....just develop some fake but realistic requirements from the application that you are going to write anyways so you make progress on your application while running the study. I would be interested to see more results posted as well.