Introducing a reactive Scala-Akka based system in a Java centric company
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.
Milan Aleksic (@milanaleksic) is a senior software engineer @ Basware Belgium working on new & old Java systems.
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 :)
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.