Foreword
“Everyone” is talking about microservices. It is reaching the peak of inflated expectations, and—as with all hyped technologies—it is easy to dismiss as just one of our industry’s latest fads, one that will die out quicker than it emerged and be soon forgotten. You can already hear some old-timers say that it is not bringing anything new to the table, that it is just SOA (or god forbid, CORBA) all over again, just common sense rebranded—“been there, done that, move on.” These individuals are right—and they are wrong.
Right because the goals of microservices are the same ones that we have pursued in software engineering for decades: isolation, decoupling, composition, integration, maintainability, extensibility, time-to-market, resilience, and scalability.
And wrong because the world of the software engineer is vastly different now than just 10 to 15 years ago. Now we are faced with challenges that are new and scary to most developers, but we have also been given the means to address them.
Today, multicore processors, cloud computing, and mobile devices are the norm, which means that all new systems are distributed systems from day one—a completely different and more challenging world to operate in, a world with lots of new and interesting opportunities. This shift has forced our industry to rethink some of its old “best” practices around system architecture and design.
One example of this is the recent interest in reactive systems and architecture. These systems are defined ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access