Chain reaction?

SpringSource’s asynchronous JVM framework Reactor hits first milestone

Chris Mayer

Considered a huge part of big data project Spring XD, Reactor can process millions of events in seconds.

Little more than two months on from revealing the project, SpringSource have released the first milestone for their asynchronous JVM framework, Reactor.

Influenced by the eponymous design pattern, the project is set to be part of the company’s big data wrangler Spring XD, and is designed for event and data-driven applications which require very high throughput.

Reactor 1.0.0 M1 brings in support for Spring and Groovy, as you’d expect being SpringSource’s major projects, and also includes reactive composition helpers Stream and Promise. Reactor’s composition method is essentially split into two parts: a Deferred which publishes and the Stream, which consumes. Users may attach handlers onto a Stream to process the data in a simple manner.

Project lead Jon Brisbin notes several inspirations for the Composables within Reactor, namely Netflix’s asynchronous library RxJava and the new JDK 8 Stream API.

“Reactor is designed, from the ground up, to be a high-performance, high-scale platform for building the next generation of big data applications” Brisbin explained, before adding that Reactor is capable of processing “millions” of events per second.

M1 also contains an “easy-to-use” TCP client and server, which is powered by the non-blocking I/O server Netty, making it possible to process so many events that quickly. It also supports JSON right off the bat. Maven artifacts are available through SpringSource’s dedicated Artifactory repository, plus you can pull Reactor into a Gradle project should you wish.

Some might say that Reactor is arriving too late to make an impact, with numerous asynchronous event-driven frameworks already out there, or indeed a chain reaction from recent events.

VMware of course backed the development of the now-Eclipse-housed project Vert.x, which hit a 2.0 version yesterday, but SpringSource developers clarify that Reactor isn’t in competition, as it doesn’t provide an entire stack, and had been in internal incubation for longer than many thought.

Either way, Reactor should become a fundamental cog in the Spring XD umbrella project. You can find all the relevant code on GitHub. If you’ve got more time on your hands, this session from Brisbin on Reactor is well worth your time.


Inline Feedbacks
View all comments