Reflecting on Reactive Systems
April 16, 2015
The past year has been a wonderful period of learning and reflection on this exciting new software architecture. I’ve written about reactive application development on Medium (What is Reactive Programming?), contributed to ReadWrite (“Reactive” Systems: Easy To Program, Now Easier To Manage), and contributed to InfoQ (Actor-based Concurrency for Reactive Systems).
Another high note is that Reactive Programming Toronto is closing in on 300 members. New reactive programming groups are forming all over the world. It’s an exciting time to be a developer who cares about their craft and I strongly feel we’re at the beginning of a major paradigm shift. I believe the reactive programming paradigm will drive the next major innovation in how software is crafted for the web, to meet the expectations of both end-users and organizations who are looking for ever increasing ways to secure a competitive advantage online.
Reactive systems are at the heart of a new breed of enterprise system that embraces modern infrastructure. Gone are the days of a single monolithic application running in a single data center. Not only does this type of application not scale to meet the ever-increasing stress placed on a modern web application, but it provides very little room for future growth; if your data center goes down, your system goes down; if your business requirements evolve, you must modify, test, and deploy a singular, complex monolithic system, and hope that all of the coupled and tangled logic within holds up under the changes you’ve made. In order to combat the challenges of keeping monolithic systems up and making risky changes to them, we create ever-more complex business and technical processes to protect ourselves. The cycle repeats, and the system grows in both risk and complexity. The system must be rewritten. And the cycle repeats again. Why do we as software developers allow these cycles to continue?
I’m working on a series of articles to outline end-to-end reactive architectures. Stay tuned if you’re interested in learning more about implementing reactive systems in the enterprise.