Talk: Building reactive user interfaces
Jan Ypma is a full-stack software architect at Tradeshift, focusing on developing at scale. He has designed Java enterprise systems at international level in a variety of domains. His background in electrical engineering and embedded software gives him a fresh out-of-box perspective. He regularly talks about his architectural experiences, particularly in event sourcing and building reactive systems.
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.