Dr. Roland Kuhn

I am CTO and co-founder of Actyx, author of Reactive Design Patterns, a co-author of the Reactive Manifesto, teacher of the edX course Programming Reactive Systems, and a passionate open-source hakker. Previously I led the Akka project at Lightbend. 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.

Articles

For my blog please head over to github.

Akka blog, Feb 05, 2019

An article on Typed Supervision: why the changes?

blog, May 13, 2017

Writeup following Dagstuhl on Composing Actor Behavior

Dagstuhl, Jan 29–Feb 3, 2017

Seminar on Theory and Application of Behavioral Types, with a contribution on Composable Actor Behavior

JAXenter, Dec 8, 2016

What’s new in Akka?

blog, Nov 20, 2016

My journey towards understanding distribution

JAXenter, Nov 2, 2015

Reactive Anwendungen bauen: “Das stumpfe Kopieren von Mustern führt nicht zum Erfolg”

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.

Books

Get a 39% discount using code 39kuhn.

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

Reactive Design Patterns

More relevant is that I published “Reactive Design Patterns” at Manning, with contributions from Jamie Allen and Brian Hanafee. This book focuses on the design philosophy behind reactive systems — demonstrated with examples using the Akka toolkit and others — and illustrates common design patterns around message passing, supervision and fault tolerance, scalability and testing.

You can download the first two chapters for free from the Manning website. I am looking forward to your comments, so be sure to visit the Author Forum.

The book has also been translated to Polish and Chinese (反应式设计模式). Since I do not speak these languages, I cannot comment on the quality of these translations, though.

Projects

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.

Teaching

Principles of Reactive Programming

This Coursera course (meanwhile deactivated, see this screenshot) had more than 120,000 enrollments in its first two iterations, starting in Nov 2013 and Apr 2015, and it is being rerun as part of the Scala Center, see below. I was 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 covered monads, mutability and FRP, Erik taught futures and Rx, and I covered actors, supervision and distribution using Akka.

Programming Reactive Systems

This edX course is open for enrollment and will start on Feb 18, 2019. Besides four weeks on reactive system design and actors it comprises one week on asynchronous computation using Futures (taught by Julien Richard-Foy) and two weeks on bounded processing of unbounded data streams (taught by Konrad Malawski). The course uses Scala & Akka as an example implementation of a reactive systems toolkit, in particular one week on the new Akka Typed module for statically verified actor interactions, and Akka Streams as a Reactive Streams implementation.

Social Networks

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

Contact

You may reach me at info@rolandkuhn.com.