re·ac·tive
rēˈaktiv/Submit
adjective
1.
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
Jan Willem says:
September 27, 2013 at 7:22 pm
Reactive programming is not a programming novelty, it’s a marketing novelty.
jgovernor says:
September 30, 2013 at 1:49 pm
Jan – yes and no. many organisations are just not set up to deal with the kinds of workloads the web is generating. there is nothing new in IT, but you’re off the mark if you think enterprises don’t need to learn new ways to develop and manage applications. but if it makes you feel better- IT is a fashion business.
Ed Dodds says:
March 5, 2016 at 12:51 pm
The US has grown to about 25% having residential fiber optic availability (don’t know the current adoption) but the Community Network Map (http://www.muninetworks.org/communitymap) is showing that #BigPipes are stealthily enmeshing the US and most CSuites (and people in general) are utterly clueless about the data volume thruput implications of a gigabit real-time internet of things. With HPC in the cloud ramping up, genomics from anywhere is rapidly becoming a thing, for example; and the quantified self and quantified communities movements are just at their infant stages. And the global build out is in many places faster than in the US.
clive boulton says:
October 23, 2013 at 7:03 pm
Many business applications now added web CRM or eCommerce for Reactive business. Yet on the backend remain non-reactive unable to communicate, scale or network with their supply chain. Creating impedance mismatch between promise and delivery to customers. Programming is ‘reacting’ to this.
@smartmocha @docker @OrchestrateIO have all emerged using Go (the programing language) for server side concurrency, providing new ways for reactive IT.
Excellent video interviews by @adron http://compositecode.com/2013/10/22/orchestrate-io-to-the-death-of-database-infrastructure/
dl.google.com is now written in Go not C++ http://talks.golang.org/2013/oscon-dl.slide#