VMware offers training and certification to turbo-charge your progress.Learn more
I am delighted to announce that the SpringSource division of VMware has acquired Rabbit Technologies Ltd., the company behind the popular open source cloud messaging technology RabbitMQ. This acquisition will enhance our middleware portfolio and accelerate our cloud initiatives.
RabbitMQ is well suited for the cloud for three main reasons:
Indeed, Rabbit's suitability for cloud scenarios is already borne out in practice by its adoption by cloud service providers and organizations building private clouds, such as NASA Nebula.
We love and are committed to the diversity of languages and platforms (beyond Java) from which developers use Rabbit. Part of the value of a messaging technology lies in its reach across platforms.
As you can expect, we will be building a particularly compelling experience for the Spring community. Enterprise developers using Spring directly, or Spring via Grails, can expect a first class integration with RabbitMQ as a messaging system. This will provide developers with even more flexibility and choice in how to structure their applications while providing assurance that the applications they develop can more easily move from the developer desktop, to a virtual or physical datacenter and into the cloud.
This Spring integration will consist of two elements:
The latter is particularly important. Spring Integration is one of the most exciting Spring projects, and provides the natural extension of the Spring POJO programming model to handle enterprise integration patterns. We're seeing a groundswell of community and customer interest in Spring Integration and are significantly increasing our investment in its development. In the same way in which Spring Dependency Injection provided an abstraction that avoided the need to work with low-level APIs such as JNDI, simplifying application code and decoupling it from deployment concerns, I believe that many, if not most, asynchronous patterns are better expressed at a more conceptual level, as with Spring Integration, than by directly working with messaging APIs and protocols.
Spring Integration allows developers to take advantage of synchronous and asynchronous messaging without even implementing a listener interface or writing code that depends on a template. It supports the Enterprise Integration Patterns (Hohpe/Woolf), building directly on Spring Framework. Developers can use the declarative, configuration-driven approach to address integration concerns, such as Transformation, Routing, Splitting, and Aggregation, while maintaining a clean separation from POJO-based business logic that is easily tested in isolation. Spring Integration's Message Channel abstraction provides consistency between intra-process and inter-process messaging. It also decouples application code from any particular transport or protocol. This fits well with the general Spring philosophy that portability should not require code changes and that technology choices should not lead to lock-in. By adding RabbitMQ to the transport options, developers will have even more choice and will immediately be able to bridge between RabbitMQ and any of the other supported transports.
I'm a little late to the party with this blog. The press, blogosphere and twitter (where it's been a trending topic) is already buzzing about SpringSource/Rabbit. (Which reminds me: I've been far more active on twitter than on my blog lately, and I encourage you to follow me at springrod.)
However, let me be the first to welcome the RabbitMQ community into the SpringSource family and to encourage the SpringSource community to take a look at how to get started with RabbitMQ.