Definition

What is a reactive systems architecture?

Reactive systems architecture is a computer systems paradigm that takes advantage of the responsivenessflexibility and resiliency offered in reactive programming so that various components (e.g., software applications, databases and servers) can continue to function and even thrive if one of the components is compromised.

The reactive programming on which reactive systems architecture allows -- at its simplest expression -- data to automatically change when related data changes. So, for example, in the expression a = b + c, if either or c changes, then the value of a will change automatically when a notification of the change to or c to is sent. The change represented by b or might be a change in availability, while a might be the price.

How reactive systems architecture works

Reactive systems architecture adhere to the tenets of the Reactive Manifesto, which characterizes systems created by reactive programming as "responsive," providing rapid and consistent response times; "resilient," meaning that the system stays responsive despite hardware or software failures; "elastic," wherein the system remains responsive in varying workloads; and "message driven," relying on asynchronous message-passing.

Proponents of reactive systems architecture say that the challenge is not in making systems that are simply responsive or resilient or elastic -- it is in making systems that are all three. So, a system must be responsive to change, e.g., to the variables or c in the example above. It must also be elastic, accommodating rises and falls in load, e.g., an online shopping site that experiences peak demand times. And it must also be resilient, built to minimize and recover from application and system failure.

Reactive systems architecture is also said to use software architectural patterns that promote self-healing and self-monitoring systems that can repair themselves.

Vendors

Vendors in this space include:

  • Lightbend
  • Akka
  • Elm
  • Meteor
  • RxJava
  • Scala
  • React
This was last updated in August 2019

Continue Reading About What is a reactive systems architecture?

Dig Deeper on Application development and design