Reactive Programming ist an sich nichts Neues. Es handelt sich um App übergreifende Pipelines, deren Mikro-Schritte Event basiert ausgeführt werden.

Hintergrund#

Wie bereits erwähnt, ist Reactive Programming nichts grundsätzlich Neues. Neu sind jedoch die Frameworks, mit denen End-to-End Reactive Programming möglich ist.

Publisher#

Am Anfang der Kette stehen Event-Generatoren, die sogenannten Publisher: etwa ein Mausklick, ein Zeitgeber, eine Tastatureingabe, ein von einem technischen Gerät produzierter Wert, ein Ereignis am Finanzmarkt.

Subscriber#

Am Ende der Kette steht der Subscriber, der sich bei einem Publisher anmeldet um dessen generierte Events zu empfangen.

Processor#

Zwischen Publisher und Subscriber sind Prozessoren, die im Endeffekt Publisher und Subscriber in einem sind. Diese Prozessoren empfangen Events, konvertieren diese auf unterschiedlichste Arten und generieren ihrerseits dann wieder neue Events.

Implementierung#

In der Praxis stehen einige Frameworks zur Implementierung von Reactive Programming zur Verfügung:
  • Functional Interface ab Java 8
  • Spring Webflux
  • Project Reactor
  • JavaRx
  • EventSource Object in Javascript
  • Streaming Mime-Types in HTTP
  • ReactorJS von Intersult
  • Reactive System von Vue
  • Reactive Database Driver (R2DBC, Mongo DB etc.)

Die Liste ist natürlich keineswegs vollständig. Sie stellt vielmehr den Schwerpunkt dar, der im Bereich Java derzeit verwendet wird.