THIS IS MY OPINION ONLY
If you’ve worked with reactive, you probably have never heard of HP NonStop servers, and conversely if you’re working on HP NonStop servers, you’ve probably never heard or “reactive”.
First, for anyone not familiar with HP NonStop servers, a little explanation. HP NonStop servers were originally known as systems built by Tandem Computers back in the 70s. You probably have never heard of either. HP NonStop servers are a mainframe-grade server that has typically had a very niche market. The servers are a fully fault-tolerant (not failover, not hot-standby) “never-go-down” systems. They are used by many stock markets, ATM networks, 911 call centers, and pretty much any business critical environment where losing data causes loss of money or life.
The point of this post deals with another aspect of HP NonStop servers. They are reactive and have been so since the 70s. The weird part is that HP NonStop servers don’t realize or acknowledge it. So what do I mean by “reactive”?
Reactive is the new hotness in IT. Back in 2014 a group individuals introduced the “Reactive Manifesto” http://www.reactivemanifesto.org to the world. In a nutshell, the Reactive Manifesto lays out a way to design, architect, and build software. Many large companies are adopting this approach. Programming languages and frameworks are arising and or are being modified to adapt to this way of doing things, Java, Scala, Akka, etc are just a few.
So what does it mean to be reactive? Per the manifesto, a reactive system is: responsive, resilient, elastic, message-driven. That last point should make your ears perk up if you are familiar with HP NonStop servers. HP NonStop servers have been message-driven at the application and OS levels since day one. What about the other points?
“Responsive systems focus on providing rapid and consistent response …” One of the primary goals of HP NonStop servers is to meet business-critical response time SLAs, in a mixed workload environment. If you’re not familiar with this term, it is the HP NonStop server’s ability to run OLTP, batch, DSS, and Data Warehousing on the same machine, in production, at the same time. In fact, there is no technical reason to have a batch window on the machine. HP NonStop servers are responsive.
“The system stays responsive in the face of failure.” HP NonStop systems are truly fault-tolerant (more than fault-resilient).
“Systems can react to changes in the input rate by increasing or decreasing the resources allocated to service these inputs” HP NonStop servers have the ability to adjust to loads by spawning and killing off processes in order to handle the load for a given business task. This is the HP NonStop server’s TS/MP (Transaction Services/Massively Parallel) environment.
“Employing explicit message-passing enables load management, elasticity, and flow control by shaping and monitoring the message queues in the system and applying back-pressure when necessary.” As I mentioned, HP NonStop servers are fully message-driven, including the OS itself. What this implies is that the system is a shared-nothing environment. There is no real shared memory or global space.
So where am I going with this. Simply put, HP NonStop servers are fully reactive and have been so since the 1970s. However, the platform has not embraced this approach in its tools or marketing.
HP NonStop can learn a lot from the reactive movement that is actively espousing it. In some ways it is also competing with HP NonStop.
Conversely, the reactive movement can learn a lot from how HP NonStop deals with reactive in a mainframe (as opposed to mini-server clusters).
HP NonStop programmers can and should learn a lot about how actors work and how to better implement asynchronous environments.
HP NonStop servers and the reactive model are made for each other.
On a personal note, “I have been doing reactive since the 1970s.”