0
votes

we are building a distributed Java system (should be scalable ;-) ) that is connected only with JMS (ActiveMQ). I studied Spring Integration and I am not sure what the advantage would be if we use it. I think we are better off with using the JMS-Templeate from the Spring Core Project as we send only messages from a JavaService to another JavaService and so on.

3

3 Answers

2
votes

Use Spring Integration (or any other framework) if you think the extra abstraction that it buys you is worth the cost. It should give you a more solid foundation on which to build your application. Software written by Spring is better than anything you or I would write from scratch.

All frameworks have a cost. There are additional dependencies. Sometimes greater abstraction can obscure too much.

You should prototype with and without Spring Integration to see if it's worth the cost.

If you're not a Spring user already, I'd recommend that you learn Spring before jumping into a big enterprise project.

2
votes

SpringIntegration will give your Enterprise Integration Pattens ready to use.

Are you going to need splitters, routers, filters, gateways, aggregators, transformers, etc? If the answer is no, go for plain Java+ActiveMQ.

0
votes

If you need a really powerful system integration tier, then you should use Spring Integration - it's an additional level of abstraction which may help when your system will grow. With SI it's a matter of seconds to add new integration processing rule between two systems.

From the other hand, I've worked on some SpringIntegration+ActiveMQ project, and it was almost impossible to configure this broker to work with SI in the reliable way. So if you decide to use SI I'd recommend HornetQ as a JMS broker - this one works fine.