Berlin Expert Days / BED-Con 2018, Berlin: Vortrag von Alex Krause (@alex0ptr, Senior Softwareingenieur bei QAware)
Abstract:
Reaktive Programmierung, reaktive Systeme und das Reactive Manifesto rücken im Moment immer stärker in den Fokus der Java Community. Der Begriff Reaktive Programmierung wird hierbei häufig synonym mit Reaktiven Systemen verwendet, dabei ist Reaktive Programmierung eher ein gutes Werkzeug, um diese zu implementieren. Reaktive Programmierung eignet sich darüber hinaus ausgezeichnet für parallele Programmierung, UI-Applikationen und das Managen von Applikationszuständen. Der Vorteil liegt hierbei in dem verständlicheren Code, der eine bessere Wiederverwendbarkeit aufweist. Ein häufig angenommener Nachteil ist die initial steilere Lernkurve.
In dem Vortrag geht es darum, die Grundlagen Reaktiver Programmierung leicht verdaulich zu erklären und die Vorteile gegenüber Alternativen deutlich zu machen. Die zweite Hälfte des Vortrags besteht aus Praxisbeispielen und Tipps für den Einstieg in die Nutzung von konkreten Implementierungen, die den Reactive-Streams-Standard (JEP 266) implementieren. Hierbei verwenden wir zur Demonstration das Reactor Framework, welches auch die reaktive Kernkomponente von Spring 5 und Spring Webflux ist.
25. Reactive Streams
@alex0ptr
“…is an initiative to provide a standard for asynchronous
stream processing with non-blocking backpressure.”
Ratpack Play Framework
ElasticSearch
Akka Streams
MongoDB
Vert.x
RxJava
Redis
Slick
Reactor Cassandra
Spring
Micronaut
26. Reactive Streams
@alex0ptr
public interface Publisher<T> {
public void subscribe(Subscriber<? super T> s);
}
public interface Subscriber<T> {
public void onSubscribe(Subscription s);
public void onNext(T t);
public void onError(Throwable t);
public void onComplete();
}
public interface Processor<T, R>
extends Subscriber<T>, Publisher<R> {}
public interface Subscription {
public void request(long n);
public void cancel();
}