April 22 and 23: Advanced Reactive Programming using Rx with Erik Meijer (2 day course)

19-03-2014

This two-day course brings the unique and exclusive opportunity to learn reactive programming from the creator of Rx. No better way to bring your skills up to par than hands-on with Erik Meijer.

The course is intended for experienced software developers who want to learn reactive programming and all it’s intricacies at the highest level, and want to reach a practical level of understanding to lead their companies into adopting Rx in production.

The course is not aimed at a particular programming language, although it is preferred to work in a programming language that has a Rx implementation, e.g. Java, Scala, C# or Javascript.

Background

From OO and DDD to CQRS, from SOA to Big Data. It is becoming clear that event handling in both the real world and software is more and more important. We need mechanism to deal with event streams in order to enable adaptive or even predicting business processes.

In the programming community Reactive Programming has taken over the world of asynchronous programming by storm. It is a programming paradigm oriented around data flows and the propagation of change and is used in production by companies such as Netflix and Soundcloud. It’s used from mobile applications to server side platforms where the reactive programming paradigm makes it possible to create maintainable, highly concurrent and scalable systems. In this movement Erik Meijer is one of the biggest contributors with Rx.

Course Organization

In this course, we will explore how to coordinate and orchestrate event-based and asynchronous computations such as sensor streams, Twitter and social media status updates, SMS messages, GPS coordinates, mouse moves and other UI events, web-sockets, high-latency calls to web-services, etc. using the Rx library. Rx originated as “LINQ to Events” in the .NET world where it first shipped in November 2009 and currently has implementations in Dart, JavaScript, ObjectiveC, C++, PHP, Python, and of course Java.

This two day edition of the basic Rx intro course will cover the same material, but is augmented with lots of hands-on programming exercises and concrete examples that will help you to apply Rx in production, and lead your internal teams to learn Rx. The division between lecture time and hacking time will be 50/50.

We will start off by explaining the importance of making certain hidden effects, such as exceptions, nullability and latency explicit in our code, thereby discovering futures and promises, as well as more modern approaches based on await/yield, and use these techniques to create bindings of various web services and other high-latency computations. Next we will generalize these effects from computations that return a single values to computations over streams of values, and discover iterables (Ix) and observables (Rx) as we go along. We will show how to bridge between Rx and traditional callback-based event programming, how to develop UI programs by writing queries over streams of events, and construct several simple Rx-LINQ provider for a real-time data sources, how to remote Rx event streams between client and server, and combine learning over historical data to predict actions over real-time data. Lastly we dive into testing Rx programs using schedulers and take a brief peek at the actual implementation of Rx.

Certification

On completion of this course, you will receive a certificate personally signed by @headinthebox that gives you the status of “Certified Advanced Rx developer”.

Literature

The course’s recommended book is Introduction to Rx (available online for free). More information about Rx is available at the Rx MSDN website, or on the RxJava GitHub repository.

Other background literature includes The world according to LINQ. and A co-relational model of data for large shared data banks. Examples of Reactive Programming use in the real world include Github for Windows and Rx.Java at Netflix.

Practical info

The training will be at Sogyo in De Bilt on April 22 and 23rd from 9:00 till 17:00. You can bring your own device and dev environment, Wifi for internet will be available. The costs for attending this two day event are 2.000,– euro excluding VAT. Lunch and drink are included. To register contact Martijn Schuts via academy@sogyo.nl or call 030-2202216