This presentation was recorded at GOTO Aarhus 2014 http://gotocon.com Viktor Klang - Chief Architect at Typesafe ABSTRACT Stream-based programming holds the promise of unifying IO with traditional Functional Programming manipulation of collections. In this session we will introduce you to Akka Streams—an asynchronous Stream-based programming library with non-blocking back pressure implemented on top of Akka—an implementation of the Actor Model. We'll demonstrate the Flow API—a lifted representation—as well as a pluggable way of transforming the lifted representation into the execution representation—Flow Materialization. We will also discuss the implications of non-blocking back pressure for fan-in (many producers to single consumer) as well as fan-out (single producer to many consumers) as well as discuss dynamic runtime optimization as well as compile time optimization. TIMECODES 0:00 Introduction 1:43 What is a Stream? 3:25 What is a collection? 4:58 User Expectations 6:23 Unexpected: observed sequence depends on 7:23 java.util.stream 8:36 Streams vs. Collections 14:38 Possible Solutions 16:13 The Four Horsemen of Reactive 17:07 Origin and motivation 18:19 Collaboration between Engineers 18:42 Goals 20:53 Reactive Streams 22:34 A Data Market using Supply & Demand 24:49 Dynamic Push-Pull 27:26 Explicit Demand: One-to-many 28:27 Explicit Demand: Many-to-one 29:01 The Meat: Java 30:52 The dessert: Java 31:17 How does it Connect? 31:48 How does it Flow? 32:21 How does it Complete? 36:11 Akka Actors 37:19 Canonical papers 37:39 Opportunity: API 38:58 Opportunity: Self-tuning back pressure 40:41 Opportunity: Operation Fusion 43:26 Opportunity: Operation Elision 44:20 Opportunity: Execution optimizations 44:56 Opportunity: Distributed Streams 52:38 Outro: How do I get my hands on this? https://twitter.com/gotocon https://www.facebook.com/GOTOConference http://gotocon.com Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter
Get notified about new features and conference additions.