Introducing a reactive Scala-Akka based system in a Java centric company


Details
A journey on introducing a reactive Scala-Akka based system in a Java centric company.
The task at hand was to build a real time dashboard for viewing business activity. The constraint was to use no new hardware and have a small footprint overall. This new application needs to integrate with existing systems in a non disruptive manner. We re-used our company standards such as a default release process, Dashing.io technology for the front end and integration with java backend systems. Our new metrics system, which is in fact a micro service, has its own REST interface, decoupling it from the other systems.
Without any prior Scala deployment, this new system had to go into production in less than a month.
During this talk we will go through our evolution with concepts and technologies as Scala, CQRS, Akka, Akka Persistence (event streaming), spray, sbt, scalatest.
The Speakers
Milan Aleksic (@milanaleksic) is a senior software engineer @ Basware Belgium working on new & old Java systems.
He comes from Serbia where he spent his first years of professional career working as full-stack developer in languages like Java, Groovy, C# developer. Sometimes the "stack" expected from him to some embedded C code for POS terminals, sometimes he had to write many lines of cross-compiled JavaScript (before the cross-compilation was considered cool). He was part of the team that brought you the e-lotto.be (and like-wise something similar to people in distant Chile) and also part of a team that allowed Nigerian villages to pay for their cellphone bills via POS terminals.
Today, he considers functional programming to be an important step forward and a common cross-language discipline that improves the code quality, helps developers express their intention in an easier way, and thus likes Scala and what it brings to the table.
In the project that will be presented, Milan had a supporting role on server side, and built the Dashing.io client side (because somebody had to write a bit of Ruby :)
Jeroen Verellen (@jeroen_v_) is a lead software engineer at Basware. He's mainly developing in Java, Scala and Javascript.
Although his background is in middleware he likes to tinker in the front end as well. Of his 14 years in IT he spent 10 years in application integration, mainly working with closed and open source ESB tooling and queueing solutions. This background also sparked his interest in reactive applications where everything is asynchronous and non-blocking. Scala seems to be the platform used in what can be considered a reactive movement.
For the project presented here, he took the leap into Scala and Akka together with Milan.

Introducing a reactive Scala-Akka based system in a Java centric company