Zalando presents Asynchronous Scala Night with Jon Pretty + Joachim Hofer on August 24th at 19:00. You’ll need your ID to enter the venue. RSVP opens on 07.08 at 9:00am.
Address: Mollstr. 1 10178 Berlin Entrance on Karl-Liebkneckt-Str.
Talk 1: Joachim Hofer - Software Engineer @ Zalando - GitHub - Twitter
Title: Risking Everything with Akka Streams
Abstract: Zalando is moving the calculation of product availability from monolith "Jimmy" to the new platform architecture. As this architecture is event-driven, Joachim and his team decided on using Akka Streams for this task back in June 2016.
But what has happened since then?
During this talk, you will explore an experience report about the learnings of the team: about hopes, regrets and best practices when switching a high-profile project to Akka Streams.
Jon Pretty - CEO @ Propensive & CTO @ Scala Technology - GitHub - Twitter
Impromptu: Using dependent types to build a better API for async call graphs
Writing asynchronous code is often an uneasy fit for a language like Scala. While high-level constructs like Futures facilitate asynchronous programming, syntactic limitations often make blocking or the unchecked access of asynchronously-computed values more natural than the safer alternatives.
In this talk, we will introduce Impromptu, a lightweight Scala API for safely defining and executing graphs of dependent tasks, avoiding blocking and preventing access of not-yet-completed values, guaranteed the type system.
We use a combination of several advanced type-system features to encode a task's dependencies, then use these types as constraints to restrict access within a task only to the results of dependent tasks which are known to have been completed. We further take advantage of Scala's type inference to avoid polluting the code with cumbersome type ascriptions. This gives us very lightweight and natural syntax, without blocking or unsafe access.
The talk will explore how Impromptu is implemented, and show how dependent types allow the framework to be written in just 30 lines of code, and show how a similar approach may be used to concisely implement typed actors.
Furthermore, we take advantage of current research into implicit functions in Dotty to remove the small amount of remaining boilerplate from Impromptu task definitions.
Schedule: 19:00 - Doors Open + Drinks + Snacks 19:30 - Welcome 19:35 - First Talk by Joachim Hofer 20:10 - Q&A 20:20 - Talk by Jon Pretty 21:00 - Q&A 21:20 - Networking + Drinks 22:00 - Event ends