I am quite confused about the Reactive Manifesto. According to this manifesto a reactive system should be:

  • Responsive
  • Resilient
  • Elastic
  • Message Driven

Now for being responsive and resilient, as far as I am aware, everyone would want the system that they've built to be a responsive and resilient, what and why would be something against these?

As for Elastic and Message Driven, I find these complementary to each other, but isn't that simply saying, instead of building a monolithic application system; build a distributed application system?

So my understanding is that the first two of these reactive properties are what people would already aim to follow, and the last two of these properties might not be wanted by some people as it would be time consuming or distributed system being hard to implement. Is that correct?

Also, how can a framework like play could be a reactive framework? I can simply build an app on play framework that is not resilient (and it would be easier to build than resilient app).

  • 2
    You can build a "non-resilient" app in any framework. Play promotes the building of resilient frameworks with Akka and other technologies. It is always possible to make non-responsive, non-resilient, inflexible apps, even those that are message-driven. The main point of the manifesto is to prescribe attributes of reactive systems, not to contradict anybody's idea of what a good system is. – BobDalgleish May 7 '15 at 13:49