I have been leaning strongly towards WSO2 and barring anything completely out of the blue that’s my current direction within Q1.
On-site/as-is:
- Oracle Service Bus 11g
- Oracle SOA Suite 10g and 11g (used as "service bus")
"Roadmaped" Addition Candidates:
- WSO2 ESB (Apache Synapse+)
- Apache ServiceMix
Strong challenger:
- Fuse ESB (Apache ServiceMix+)
- UltraESB
Out of contention:
- Mule ESB
- Tibco, WebMethods, anything else that’s big money
Defining ESB as stateless transformation, routing and mediation I’ve got the following systems either in play or in research (we’re pushing hard on rolling out OAGiS and your question is topical to me). In no order my experience and impressions of items from the above lists:
1) Oracle SOA Suite 10g and 11g (horribly used as a “poor-man’s” ESB)
My heartache here has been the Oracle SOA Suite. It's a product I really like, but my organization cannot -- will not -- purchase RAC. And SOA Suite does not "fly" without RAC. Also SOA Suite is architected to "do everything" including the non-stateful adapters I'd prefer to use Camel for (e.g., JMS-, File-, DB-adapters, etc.). So it's a blended stateful and non-stateful, instant and long-running, persistent and ephemeral, orchestration and choreography mess. It’s good for making piles of wrong long-lasting decisions faster.
2) OpenESB
My first “SOA” love… cut my teeth in retail on it. Then Oracle bought Sun. And that’s sort of the end of that.
3) Oracle Service Bus 11g (BEA AquaLogic Service Bus)
I'm actively looking to replace Oracle products; and though I like the OSB product -- very much in fact -- it's long in the tooth security-standards wise and it feels almost out of support now as Oracle figures out how to get it out of BEA (Eclipse) and move it into Oracle's infrastructure (read: JDeveloper). I've grown to appreciate JDeveloper btw, but that's another topic. The WS-* standards are aged. There’s no built-in pub/sub mechanism; but JMS is well supported. However if I wanted to managed JMS-as-MOM I could just do that and use Camel most successfully. All that said, the OSB is an extremely good product and we've got room for more than one ESB. We run multiple busses based on canonicals: OAGiS, NIEM, etc. I've got one cluster running with nearly forever uptime.
4) Fuse ESB
Looked into this and one of my largest integration partners uses it. Using a set of basic enterprise integration pattern to test, and for some reason this was not trivial to get going with Fuse. I’ve got a couple of developers who do not come from the Maven mentality and the IDE took the wheels off the wagons. This is the same for all of the ServiceMix console-driven ESB of course, so the differentiator comes from the IDE and the console. I also consider “pretty is a feature” and our developers and support staff use the consoles to help troubleshoot customer problems. Thus Fuse didn’t wow me, but it didn’t tick me off either.
5) Mule ESB
I remember Mule from the “good-old-days” (really before I started using Apache Camel) where I used it to move info from anyplace to anyplace. Very point-to-point, very old-school, but the gold-standard of effectiveness. But that was Mule without the “ESB”. The Mule EBS is lightweight (they say so) and I was told emphatically that Major League Baseball uses it so I must be sort of nuts to not purchase it immediately. The ability to use LDAP is an enterprise feature. I can almost even accept SAML2 or OpenID or OAuth as enterprise features, but LDAP? Trivial I know, but it telegraphed what I consider a lack of “developer heart”. I consider the community edition to be hobbled.
6) Apache ServiceMix
If I use servicemix I'd like to find one that added value to the consoles and reporting. But if I decide that’s not so important I might as well use ServiceMix itself if my intent is to create an extremely streamlined “programmer” experience. We’re pretty good at Ant, Maven, and Gradle. You might ask, if we’re going to jump the hoops why not jump the Fuse ESB hoops? No good answer for that except I expect Fuse to have already removed the hoops.
7) WSO2 ESB
We’ve used the G-Reg product for a little bit and my experience with it has been good. Their security standards are recent and very good; the interfaces are good and decent enough to give to an associate developer to help troubleshoot; as @ivo mentioned above the WSO2 staff use stackoverflow extensively. We have used their Stratos-live product in the “cloud” but could never quite get ourselves “there” (entirely our side of the equation security-wise and all). I have a soft rule here that any open-source software must be locally buildable by a developer of reasonable skill. That has never gone smoothly using WSO2 software. So that’s a risk. But if you’re happy running on the binaries as provided I think you could be successful with WSO2.
As @user9591 mentioned WSO2 is used by ebay and that’s either a thing for you or not. I think it has had a strong effect on “selling” it here.
8) Tibco, WebMethods, and any other non-opensource systems
Added this for completeness though I haven’t used Tibco in a few years. Not open-source, so there it is.