Reactive Systems in Java by by Clément Escoffier and Ken Finnigan
I’ve bought this book almost three years ago, soon after it has been published and I’ve read it right away, but since, I read it again and again, several times, as it became one of the fundamental key texts in my library.
As a Java developer, I’m of course interested in anything new in the Java world. Not that reactive programming would be such a new thing, but this book isn’t only on reactive programming, moreover, as its title clearly says, it discusses a broader category which is “reactive systems”.
As many other Java developers, I’ve been fighting for a while against RxJava or
Reactor and their cohort of confusing map()
and flatmap()
methods and was
about giving away, hoping that the Loom project would bring a bit of simplicity
in this brutish world :-), when I discovered Clément’s & Ken’s book. And then,
there was light !
The book is centered on Quarkus, the famous supersonic, subatomic Java stack and its reactive library Mutiny. It shows how asynchronous and non-blocking processing is almost all what everything is about reactive programming, with examples going from the simplest “say hello” standalone Java classes, to REST services and clients of several types, reactive messaging with Kafka and AMQP, data access with Hibernate Reactive or NoSQL and Redis.
Failover and observability are two important aspects that the book is shading light on demonstrating retries, bullheads, circuit breakers, fallback methods, as well as services health, metrics and distributed tracing.
Absolutely indispensable in any Java developer’s library.