showing a response to a stimulus.
“pupils are reactive to light”
A few months back Typesafe, one of our clients, called us to tell us about the latest hipster hacker term Reactive Programming, which is about new stacks designed for the new spiky, responsive workloads that so many of us are facing. My first thought was dismissive- “reactive? that’s bad, right?”
If you came into business any time in the last 20 years the mantra was always be proactive, not reactive. But does that really work any more.
But then I looked into what the geeks were saying about Reactive, and it began to make sense to me. After all – we’re now living in an age when so many of the traditional IT disciplines are falling apart – capacity planning, for example. Everything today seems increasingly bursty. People expect real-time now.
I started wondering what a reactive database would look like – it would be schema-less, for one thing, so completely flexible from a data model perspective.
Typesafe uses Reactive as a description of its stack.
“The Typesafe Platform is a JVM-based runtime and toolset for building Reactive Applications”, where Reactive is defined thus:
Reactive Applications are a new class of applications that are becoming more and more prevalent in both Consumer and Enterprise-facing environments. Reactive Applications are fundamentally different to the traditional web-based or mobile applications seen today and are distinguished by having one or more of the following defining traits:
Resilient: The ability to recover and repair itself automatically in order to provide seamless business continuity.
Interactive: Rich, engaging, single page user interfaces that provide instant feedback based on user interactions and other stimuli.
Scalable: Can scale within and across nodes elastically to provide compute power on-demand when it’s needed.
Event-Driven: Enables parallel, asynchronous processing of messages or events with ease.
the TypeSafe framework is used in high frequency trading and spike-oriented architectures for next gen media companies – with apps built in Scala, a functional programming language that runs on the JVM. But this post isn’t about that. It’s about the core idea.
Because the more I thought about Reactive the clearer it became that businesses, not just infrastructures, need to act in this way. The age of long term planning is long gone. Circumstances change and they fast.
Google didn’t set out to revolutionise the advertising business.
Blackberry didn’t expect to lose more value in a year than any company in corporate history. But then, Palm used to be the game too.
According to Mark Andreessen Software is Eating The World – all industries are going to be remade in the way Google changed advertising. Even IBM is now warning its own clients that their competition won’t come from existing players, but from new Web companies. The nature of competition is changing.
I think Stowe Boyd describes the new new thing better than I ever could:
The takeaway is we’re now in a time of overwhelming volatility, uncertainty, complexity, and ambiguity, where forecasting becomes nearly impossible, and even determining which of the risks confronting us are most significant is almost unimaginable. This near blindness confronts governments, global businesses, the local bank, the entrepreneur, and every person on Earth. We are driving a car whose engineering is unknown (and rapidly evolving, in real time, under the hood), a car that is inexorably speeding up, with only one flickering headlight, and no brakes, on a road headed to who knows where.
Businesses need to be reactive because you can’t predict the future and they will need new technical architectures to support the change, which look a lot more like Web computing. Agile, bursty, lean – that’s the future of business.
In the mean time, check out the Reactive Manifesto