Skip to main content


Showing posts from December, 2016

Building a non-blocking service in a blocking world

In past year or so I've been watching dozens of tech talks about reactive architectures. Most of the time I have felt inspired by them but could not quite get a grasp on what a reactive architecture is really like. Sure, the list of gained benefits such like 100x increase in response times is convincing but not having the experienced that myself, it all seems a bit vague. I need something concrete. The funny thing is that for the last one and a half years I have been working on a message-driven, non-blocking component (service). The technology stack is at least partially modern, with AngularJS (Some might object, I know...), Vaadin with websocket push as the only server-client communication method and Akka. There is no Java EE or any heavy platform used but rather a customized version of Karaf OSGi container where we run the software as small modules. The UI is not locked at any point, the user can navigate at any time since there are no HTTP requests. Every end-user action resul