I have ApacheCamel
+ ActiveMQ
up and running at work with about 8 different routes. It started nicely when we had 2 routes. The number of routes is growing (currently 10) and the process of adding new route involves updating the existing routes code, testing, deployment..etc.
What I really want is a true ESB
where bundles/services can be installed, started, stopped or uninstalled without affecting other bundles/services.
I've done some research and JBOSS Fuse
seems the right choice for us to achieve the above. I do have a couple of questions and hope you guys can help me with:
Spring
project. Should they be separated to individual bundles (using Spring-dm
)? that is one bundle per routeESB
?To select at an OSGi based ESB slash container framework using Apache Camel, ServiceMix is the oldest, then came Fuse ESB, and that got renamed to Fuse Fabric.
So since you have the chance to start fresh, selecting Fuse Fabric or the open source version Fabric8 would be good choices.
Have a read in the Fuse Fabric documentation about how bundles, features and profiles work.
In your case, you will build features based on the bundles you have compiled, you will be able to update and deploy the features independently of each other, and you will be able to keep simple control of the release levels of all of the features via profiles.
e.g.
myapp-profile 1.1
firstapp-1.0
bundle1
bundle2
secondapp-1.2
bundle3
bundle4
(+configuration)
In answer to your questions:
http://www.jboss.org/products/fuse/overview/
http://www.jboss.org/products/fuse/resources/#demos
If you want to be able to independently stop, start and upgrade your routes, they should be in separate bundles. You can definitely have multiple routes in one bundle if you like, but one route per bundle is perfectly fine. Note that Fuse Fabric
uses blueprint
as the default DI framework (which is similar to spring, but not the same), since it is OSGi compliant, and I am not able to comment on Spring-dm
since I haven't used it.
Whether Fuse Fabric
is the right choice for a true ESB
is really up to you do decide or to evaluate through a simple proof of concept. Other choices are fabric8
(which is essentially the same thing) or vendor solutions like Mule
. In my own experience Fuse Fabric is excellent, though this is a subjective and personal opinion.