It’s all about timing

SpringSource release asynchronous framework ‘Reactor’

Elliot Bentley
reaction1

New JVM framework is designed for event and data-driven applications – but is it too late to compete with Atmosphere and Vert.x?

SpringSource have released a “foundational framework” for asynchronous JVM applications called Reactor. Available on GitHub, it’s designed for event and data-driven applications that require very high throughput and will be used in upcoming big data project Spring XD.

SpringSource engineer Jon Brisbin, unveiling the project on the company’s blog, described Reactor as “a set of tools to not just develop but compose applications in a way that more efficiently uses system resources”.

Since the primary purpose of asynchronous frameworks is to provide high scalability and speed, and it should come as no surprise that one key selling point of Reactor is its impressive I/O. Brisbin said that “on modest hardware, it’s possible to process over 15,000,000 events per second with the fastest non-blocking Dispatcher”. Optional use of lambdas, to be introduced in Java 8 next year, provides even higher throughput.

In addition, many asynchronous applications suffer from “callback hell” in its client-side JavaScript, wrote Brisbin. Reactor is said to be designed to significantly reduce this type of messy nested code.

However, Reactor is somewhat late to the asynchronous framework party: the JVM alone boasts the Atmosphere framework and Vert.x, the latter of which is now backed by the Eclipse Foundation. All are heavily inspired by node.js, which has won praise for its event-driven, asynchronous server-side implementation of JavaScript.

Members of SpringSource clarified in the comments that Vert.x – which sister company VMware was accused of hanging onto after its creator left – was not a competitor of Reactor, since “Reactor isn’t providing a full async stack for web development”. However, it may be difficult to gain traction in an increasingly-crowded space.

Photo by Andry Brill.
Author
Comments
comments powered by Disqus