It’s often difficult to separate hype from reality when it comes to evaluating new technologies, and that’s certainly true of reactive programming. In this report, author Konrad Malawski analyzes reactive principles, and explains how and when it makes sense to adopt this relatively new programming paradigm for systems design. Many ideas behind the reactive paradigm aren’t new, such as the actor-based programming model, but with recent trends in cloud computing, mobile app development, and the rise of the IoT sector, reactive is taking off in mainstream enterprise software development. This report takes you on a deep dive into the technical aspects of reactive and explores areas where this architecture can be a good fit for your organization. You’ll explore: - Reactive on the application level: apply reactive principles within a single application, and understand its impact on resource utilization - Reactive on the system level: examine the architectural and organizational impact of distributed reactive applications - Building blocks of reactive systems: learn about several tools that will facilitate your move toward reactive programming
A great (short & deep at the same time 😲) architectural overview of rx principles. As I'm new to them, I didn't know e.g. about the "back pressure" concept. Extra credits to the author for: 1. explaining the Rick Hickey's "simple != easy" idea. 2. links to DDD concepts. 3. not sticking to a particular technology / language Also an interesting fact: the author worked on Akka JVM lib, and now he works on Swift at Apple 🍎.
Nice and smartly written booklet about modern reactive systems and some design principles.
quotations:
A simple rule of thumb to get started with (and from there on, optimize according to your requirements) is to keep system utilization below 80%.
Most notably, using and/or building streaming libraries and APIs allows us to never load more of the data into memory than we actually need, which in turn allows us to build bounded-memory pipelines. This is a very interesting and useful property for capacity planning, as now we have a guarantee of how much memory a given connection or stream will take, and can include these numbers in our capacity planning calculations.
Changing the system will change what people do. Changing what people do will not change the system. Peter R. Scholtes, The Leaders Handbook
This is very good & concise introduction to rationale behind reactive movement. It's written in such a way that your average manager should be able to understand it, at least to some extent. Actually this publication hits the nail in the head - there seems to be so much confusion about all this reactive thing these days that one could only regret this report wasn't published year earlier. Worth to mention that it's also packed with several pretty good references to other materials (papers, presentations etc).
It's pointless to discuss the contents of this publication - if you are at least slightly interested in the subject, just simply grab it & read it. It's a short, yet enjoyable reading. Good stuff!