In today’s software world, everything’s changed when it comes to operational (non-functional) requirements. We have applications running on thousands of cores, producing petabytes of data, and, of course, users expect to have a response time under 100ms. Several years ago, we used to build systems that blocked certain operations because programming models used back then didn’t allow many asynchronous things to happen in code. Unfortunately, these systems aren’t as responsive as we expect them to be, they cannot be scaled that easily, and they use processor time waiting for operations to complete when they could do something else (processing another request, doing some background calculations, etc.).
The Reactive Manifesto was created in order to define the properties of a system that’s able to respond to the aforementioned challenges. Systems that are reactive are Message Driven, Responsive, Resilient, and Elastic (Image 1). In this blog post, I’ll focus on how the Axon Framework helps us build reactive systems.