Files
TechRadarAJR/radar/2017-10-01/reactive-programming.md
2017-09-17 10:47:59 +02:00

35 lines
1.7 KiB
Markdown

---
title: "Reactive Programming"
ring: trial
quadrant: methods-and-patterns
---
Classic (web-) applications are typically composed of transactions that submit
big forms to the server side that processes these and in response returns HTML
for the browser to render. Todays applications are having more and more
fine-grained 'real-time' like aspects: A simple modification of a form field
could trigger a complete roundtrip to the server including other services and
persistence. And all of these transactions should of course respect the
expectations of a user who wants a highly interactive appliation.
"Reactive Programming" tries to provide an answer to the above posed challanges
by raising the level of abstraction that allows you to focus on the stream of
events that make up your business logic in an responsive asynchronous fashion.
There are various descriptions of what Reactive Programming actually is - at
the most general level it is programming with asynchronous data streams and
having tools to create, manipulate, combine and filter these streams. Under
"Reactive Programming" we summarize the principles and implementations that
underly [ReactiveX](http://reactivex.io/) and the [Reactive
Manifesto](https://www.reactivemanifesto.org/).
"Reactive Programming" is employed in many of our services - frontend and
backend - but not always as an explicitly choosen pattern. As different
plattforms have different means to tackle this style of programming we choose
to include "Reactive Programming" as a general Method and Patterns Item in
addition to concrete libraries and APIs like
[Rx.JS](languages-and-frameworks/rxjs.html) or [Akka
Streams](/languages-and-frameworks/akka-streams.html) to highlight the
importance of the approach in general.