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

1.7 KiB

title, ring, quadrant
title ring quadrant
Reactive Programming trial 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 and the Reactive Manifesto.

"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 or Akka Streams to highlight the importance of the approach in general.