Asynchronous programming is essential for performant applications but can be confusing to use. This presentation will learn you about promises, futures and streams and how to use them effectively (and creatively) to write performant and comprehensible applications.