Introduction
============

What's all the fuss about Reactive Programming?
-----------------------------------------------

*Reactive Programming* is all about asynchronous data streams. In history
of programming a lot of architectures and paradigms had come up solving
this issues. Terms like *event driven*, *oberserver pattern* and others are
coming up describing the idea behind *reactive programming*.

In *reactive programming* you work on asynchronous data streams. And this
can be nearly anything.

Examples of sources for asynchronous data streams:

* events in an user interface (clicks, mouse moves, ...)
* requests from clients in a server environment
* sensor and input data from an embedded system
* variables, states or data structures in an application
* ...

*Reactive programming* gives you operators to work on those streams:

* filter streams
* map functions to streams
* merge streams in various ways
* process contained data
* ...