Exploring Reactive Integrations With Akka Streams, Alpakka And Apache Kafka

download Exploring Reactive Integrations With Akka Streams, Alpakka And Apache Kafka

of 66

  • date post

    22-Jan-2018
  • Category

    Software

  • view

    8.738
  • download

    1

Embed Size (px)

Transcript of Exploring Reactive Integrations With Akka Streams, Alpakka And Apache Kafka

  1. 1. akka streams, Exploring Reactive Integrations with Alpakka and Kafka Konrad `ktoso` Malawski
  2. 2. Konrad `ktoso` Malawski Akka Team, Reactive Streams TCK, Persistence, HTTP, Remoting / Cluster
  3. 3. Make building powerful concurrent & distributed applications simple. Akka is a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM
  4. 4. Actors simple & high performance concurrency Cluster / Remoting location transparency, resilience Cluster tools and more prepackaged patterns Streams back-pressured stream processing Persistence Event Sourcing HTTP complete, fully async and reactive HTTP Server Oicial Kafka, Cassandra, DynamoDB integrations, tons more in the community Complete Java & Scala APIs for all features Whats in the toolkit?
  5. 5. Stream has many meanings
  6. 6. akka streams Asynchronous back pressured stream processing Source Sink Flow
  7. 7. akka streams Asynchronous back pressured stream processing Source Sink (possible) asynchronous boundaries Flow
  8. 8. akka streams Asynchronous back pressured stream processing Source Sink 10 msg/s 1 msg/s OutOfMemoryError!! Flow
  9. 9. akka streams Asynchronous back pressured stream processing Source Sink 10 msg/s 1 msg/s hand me 3 morehand me 3 more 1 msg/s Flow
  10. 10. akka streams Not only linear streams Source SinkFlow Source Sink Flow Flow
  11. 11. And the many meanings it carries. Reactive
  12. 12. The many meanings of Reactive reactivemanifesto.org
  13. 13. The many meanings of Reactive
  14. 14. Not-quite-Reactive-System The reason we started researching into transparent to users flow control.
  15. 15. Reactive Streams Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure. This encompasses eorts aimed at runtime environments as well as network protocols http://www.reactive-streams.org
  16. 16. Reactive Streams A buiding-block of Reactive Systems, not the entire story.
  17. 17. Reactive Streams Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure. This encompasses eorts aimed at runtime environments as well as network protocols http://www.reactive-streams.org
  18. 18. Part of JDK 9 java.util.concurrent.Flow http://openjdk.java.net/projects/jdk9/
  19. 19. JEP-266 soon! public final class Flow { private Flow() {} // uninstantiable @FunctionalInterface public static interface Publisher { public void subscribe(Subscriber