Book Image

Software Architecture Patterns for Serverless Systems - Second Edition

By : John Gilbert
Book Image

Software Architecture Patterns for Serverless Systems - Second Edition

By: John Gilbert

Overview of this book

Organizations undergoing digital transformation rely on IT professionals to design systems to keep up with the rate of change while maintaining stability. With this edition, enriched with more real-world examples, you’ll be perfectly equipped to architect the future for unparalleled innovation. This book guides through the architectural patterns that power enterprise-grade software systems while exploring key architectural elements (such as events-driven microservices, and micro frontends) and learning how to implement anti-fragile systems. First, you'll divide up a system and define boundaries so that your teams can work autonomously and accelerate innovation. You'll cover the low-level event and data patterns that support the entire architecture while getting up and running with the different autonomous service design patterns. This edition is tailored with several new topics on security, observability, and multi-regional deployment. It focuses on best practices for security, reliability, testability, observability, and performance. You'll be exploring the methodologies of continuous experimentation, deployment, and delivery before delving into some final thoughts on how to start making progress. By the end of this book, you'll be able to architect your own event-driven, serverless systems that are ready to adapt and change.
Table of Contents (16 chapters)
14
Other Books You May Enjoy
15
Index

Dissecting the Strangler pattern

The overarching theme of this book is that we want to move fast, but we do not want to break things. This applies to our legacy systems as well. Our legacy architectures may impede change, but these systems provide valuable capabilities to our end users that they rely on every day. We must ensure that our legacy systems continue to work.However, we do need to modernize our legacy systems and they are filled with a lot of functionality. This means that if we follow a traditional approach then it will take a long time to port the functionality and, in the meantime, the teams will not deliver any new business value. And when the time comes to cut over from the old system to the new system, this traditional all-or-nothing approach will put everything at risk. There is just too much risk to justify using the traditional approach.Instead, we will build up new features and replacement features around the existing systems and integrate with them. Slowly, but surely...