By now, it’s no secret that asynchronous and non-blocking code means fast and responsive software stacks that scale to the moon. The only problem? Asynchronous code usually means callback hell that’s impossible to write, impossible to reason about, and even worse to maintain. Not anymore— Scala 2.10 brings an asynchronous, completely non-blocking, composable Futures and Promises API. And best yet? Code using it looks sequential— nice and easy to reason about. In this talk, I’ll show you how to program in a powerful way— with composable “pipelines” that look sequential, but execute in a completely asynchronous, parallel way. I’ll also show you how to handle errors both for this asynchronous code as well as for normal sequential code, all in a new, clean, and composable way, with the new Try abstraction. Last but not least, all of this is available in a Java API too! So it doesn’t matter whether you have a Scala or a Java stack, there’s still a way to profit from the new Futures and Promises API!