Introducing The Reactive Principles: A Conversation with Jonas Bonér
The Reactive Foundation was launched in September 2019 with founding members Alibaba, Facebook, Lightbend, VLINGO, and VMware. It established a formal open governance model and neutral ecosystem for supporting open-source Reactive projects and initiatives.
Recently, we published The Reactive Principles, a new set of guidelines and techniques for building Cloud Native, Edge Native, and Internet of Things (IoT) applications. In this post, I catch up with Jonas Bonér, lead author of The Reactive Principles, co-author of the Reactive Manifesto, creator of Akka, and CTO of Lightbend.
What is the Reactive Foundation about?
JB: The main purpose of the Reactive Foundation is advancing a new landscape of technologies, standards, and vendors to help developers and business leaders realize the efficiencies inherent in using Reactive. For almost a decade, our collective experience has shown that Reactive principles enable the design and implementation of highly concurrent and distributed software that is performant, scalable, and resilient, while at the same time conserving resources when deploying, operating, and maintaining it.
It’s our belief that if we can further apply Reactive principles, we will be better equipped as a society to depend on software for making our diverse and distributed civilization more robust.
What are The Reactive Principles?
JB: The Reactive Principles provide guidance and techniques established among experienced Reactive practitioners for building individual services, applications, and whole systems.
As a companion to the Reactive Manifesto, it incorporates the ideas, paradigms, methods, and patterns from both Reactive Programming and Reactive Systems into a set of practical principles that software architects and developers can apply in their transformative work.
What is the basic premise of The Reactive Principles?
JB: Building a Cloud Native, Edge Native, or Internet of Things (IoT) application means building and running a distributed system on unreliable hardware and across unreliable networks.
An application can be considered Reactive if it embraces certain principles into its design and architecture, and often into its programming model. An application does not need to use Reactive approaches to apply these principles, though it can definitely help—there’s a reason Reactive is used!
What criteria do we use to distinguish between a “Reactive application” and one that is not Reactive?
JB: Most distributed systems will typically end up tackling some or all of the challenges described in The Reactive Principles, but that alone does not make them Reactive. Unfortunately, these issues are often treated as an afterthought—as operational problems or infrastructure problems that are dealt with via increasingly complex technology stacks, wrappers, workarounds, and unfortunate leaky abstractions.
A Reactive application addresses the challenges of distributed systems directly in its abstractions, programming models, protocols, interaction schemes, error handling, and other such areas of design and architecture.
What’s next for the Reactive Foundation and Reactive principles?
JB: The next big event is Reactive Summit on Nov-10, 2020, a free 1-day virtual event hosted by the Reactive Foundation and featuring some wonderful speakers and sessions (including many contributors to the Reactive Principles). The theme of this year’s conference will explore Reactive principles, patterns, and projects.
We will continue to publish blogs that discuss The Reactive Principles in greater depth, and will also announce some new projects joining the foundation in the coming months. Follow us on Twitter at @ReactiveOSS to keep up with the latest updates!