Friday, April 4, 2014

Introduction to Reactive Programming - from old laptop to cluster

Modern applications present incredible design challenges: we expect near-realtime performance while managing petabyte-scale data and distribution across environments ranging from traditional servers to cloud systems to mobile devices. 
The Reactive Application model addresses these demands through new patterns designed to "react" effectively to user and system events, changes in load, competition for shared system resources, and unanticipated failures. Although reactive design patterns can be implemented using standard enterprise development tools, you best realize the benefits when you pair them with a functional programming language like Scala and an Actor-based concurrency system like Akka.

http://www.manning.com/kuhn/
https://www.coursera.org/course/reactive


On May 1 2014, we will release Rfx version 1.0, the first open source framework for reactive big data processing, applied Reactive programming with Lambda Architecture
at https://github.com/mc2ads


Core ideas of Rfx:


  • event source (user click a link), creates an new event, which sends to Rfx system (a page-view of URL)
  • an event is recorded in a topic, transmits to seeding functor (aka" event handler) in topology
  • the seeding functor will emit to all functors in hyper-topology
  • the ending functor will push back the info graph to event source (user) or event subscriber (data analyst)