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.
Georg Wilhelm Friedrich Hegel once said that "The only thing we learn from history that we learn nothing from history". While the context and era was different, these wise words can also be applied to the software industry. Why are we repeating the same mistakes done by others decades ago? Why are we reinventing the wheel when tackling problems already researched and solved, and in doing so, reinventing them badly? We are trying to reach nirvana, where programming languages are not only beautiful, but also useful. Compact, easy to maintain and predictable.
But in our quest to do so, we seem to be taking two steps forward and one step back. In this panel debate, representatives from the industry will be discussing and debating with the audience (and language inventors) on the reasons we are in the mess we're in and what we need to do to get out of it.
Viktor "the legend of" Klang — Chief Architect at Typesafe and former Director of Engineering and Tech Lead for the Akka project — has a long background on the JVM and has a passion for high-performance, distributed, resilient systems.
Github: viktorklang
Twitter: @viktorklang