Dr. Roland Kuhn

I am leading the Akka project at Typesafe, a co-author of the Reactive Manifesto, co-teaching the Coursera course “Principles of Reactive Programming” and a passionate open-source hakker. I also hold a Dr. rer. nat. in particle physics from TU München and have worked in the space industry for several years. I spend most of my life in the central European timezone.

Talks and Presentations

If you are interested in having me speak at your conference, shoot me a mail.


InfoQ, Jan 6, 2013

Creating Resilient Software with Akka (also in Japanese)

let-it-crash, Jan–Mar 2013

Blog series on Typed Channels (part one and part two)

let-it-crash, Mar 10, 2012

An often-useful post on TypedActors

Over time I contributed to the former Akka team blog “Let It Crash” (which has been converted into a newsfeed for everything around Akka in Oct 2013). You can take a look at all my posts.


Probably of least interest to the general public — but dear to my heart — is my doctoral thesis.

Get a 37% discount using code kuhnco.

More relevant is that I am working on “Reactive Design Patterns” together with Jamie Allen, to be published by Manning. This book focuses on the design philosophy behind reactive systems — demonstrated with examples using the Akka toolkit and others — and illustrate common design patterns around message passing, supervision and fault tolerance, scalability and testing.

The book has entered the Manning Early Access Program on March 29, 2014, with currently chapters one and two available. You can download the first one for free from the Manning website. Jamie and myself are looking forward to your comments while developing the book throughout the upcoming months, so be sure to visit the Author Forum.


Reactive Streams

I am honored to be part of the effort of standardizing mechanisms for implementing asynchronous and non-blocking stream handling on the JVM: Reactive Streams. The focus of this project is to define interfaces for transferring data items across an asynchronous boundary—be that a network connection or between CPU cores—in a fashion that includes flow control, does not require unbounded buffering and can be efficiently implemented in different languages or based on different execution engines.

This means that implementations are interoperable and users can pick and choose the most appropriate technology for each part of their application while still enjoying asynchrony and flow control across all components.


Principles of Reactive Programming

This Coursera course had more than 65,000 enrollments, and you can still enroll to watch the video lectures. I am co-teaching this course with Martin Odersky (creator of the Scala programming language) and Erik Meijer (creator of the Rx.NET reactive streams framework). Martin covers monads and mutability, Erik teaches futures and Rx, and I cover actors, supervision and distribution using Akka.


Recently I discovered that it is great fun to introduce programmers to Reactive Programming by way of a class room sized workshop, since that allows lively interaction which benefits both student and teacher.

Social Networks

You can find me on twitter / LinkedIn / StackOverflow / g+ / github / slideshare / keybase / Skype (roland.kuhn).