Вижте презентацията от пролетната конференция юни 2017 на BGOUG


Можете да видите презентацията от пролетния семинар юни 2017 на Българската Група на Потребителите на ORACLE – Stream Processing with CompletableFuture and Flow in Java 9 by Trayan Iliev

В Speacker Deck:

https://speakerdeck.com/trayan/stream-processing-with-completablefuture-and-flow-in-java-9

В SlideShare:

Описание:

Поточната обработка на данни / събития / съобщения се превръща в предпочитан начин за постигане на оперативна съвместимост и комуникация в реално време в разпределени SOA / microservice / архитектури на бази данни.

Освен lambdas, Java 8 представя две нови APIs, които изрично се занимават с обработката на потоци от данни:
– Stream – който е PULL-базиран и лесно parallelizable;
– CompletableFuture / CompletionStage – който позволява композиране на PUSH-базирани, non-blocking, asynchronous data processing pipelines.

Java 9 ще предложи бъдеща поддръжка на stream-базирани data-processing чрез разширяване на CompletableFuture с допълнителна функционалност – поддръжка за закъснения и изчакване, по-добра поддръжка за подкласиране и нови методи за комунални услуги.

More, Java 9 provides new java.util.concurrent.Flow API implementing Reactive Streams specification that enables reactive programming and interoperability with libraries like Reactor, RxJava, RabbitMQ, Vert.x, Ratpack, and Akka.

The presentation will discuss the novelties in Java 8 and Java 9 supporting stream data processing, describing the APIs, models and practical details of asynchronous pipeline implementation, error handling, multithreaded execution, asyncronous REST service implementation, interoperability with existing libraries.

There are provided demo examples (code on GitHub) using Completable Future and Flow with:
– JAX-RS 2.1 AsyncResponse, and more importantly unit-testing the async REST service method implementations;
– CDI 2.0 asynchronous observers (fireAsync / @ObservesAsync)