Reactor - a foundation for asynchronous applications on the JVM

Speakers: Jon Brisbin and Stephane Maldini
Reactor was recently made public after a two-year incubation, evolving slowly alongside frameworks like Storm, Akka, Play, GPars or Vert.x. Integrated with Grails starting with version 2.3, Reactor takes the best ideas from several asynchronous toolsets and synthesizes them into a coherent framework that supports a variety of runtime topologies and makes it easy for developers to efficiently leverage their cloud or traditional hardware assets. Reactor is equally at home inside or outside a Spring ApplicationContext and also provides first-class Groovy support in the form of DSLs and language extensions. Special attention has been given to make Reactor easy enough to use to create single-file node.js-like applications, while maintaining a solid asynchronous toolset that works with Big and Fast Data tools like Gemfire, Spring Integration, and Spring Batch. This talk will give Reactor a proper introduction and show sample code that demonstrates the event-driven and composition-based nature of Reactor applications.

3.
Reactor – Housekeeping
●
Tweet questions during the presentation
–
–
@j_brisbin
–
●
@ProjectReactor
@smaldini
Stop us anywhere if you have a question
–
There are no stupid questions, only stupid answers!

4.
Reactor – What is it?
●
Reactor is a foundational library
–
Plays in grey area between user-level and lower-level
abstractions
–
Components and application cores can be built on
Reactor
–
Drivers, servers, data integration libraries, domain
integration libraries, Evented architectures

5.
Reactor – What is it?
●
Reactor is a distillation of other libraries and best-practices
–
Elements of other patterns and libraries surface throughout
Reactor's abstractions
http://stackoverflow.com/questions/16595393/akka-or-reactor

10.
Reactor – Selectors
●
Selectors are the left-hand side of an equality comparison
–
A Selector can be created from any object using $(obj)
(or the long form: Selectors.object(obj))
–
A Selector can extract data from the matched key
–
Predicate<T> Selectors can be created to match on
domain-specific criteria like header values