Building reactive user interfaces

Speaker: Jan Ypma

Developers are increasingly building reactive server applications and leveraging streaming frameworks to get maximum resource utilization and elasticity. The functional programming concepts that Akka and RxJava apply, result in great testability and ease reasoning about parallelism. However, what about the front-end?

As it turns out, reactive techniques fit user interfaces just as well as servers, with the same testability advantages. However, it pays off to have a type-checker when turning a Stream<T> into Stream<List<U>>, which via Stream<Map<K,U>> result in Stream<U>. A solution has been found in ScalaJS, which enables using a well-established, highly type-safe language in the web browser (without repeating GWT's mistakes...)

A real-time document editor is being developed to edit semantically-rich documents like invoices and orders with multiple participants simultaneously. The prototype architecture is built around ScalaJS and Outwatch, with an Akka-based server.