Book Image

Software Architecture with Spring 5.0

By : René Enríquez, Alberto Salazar
Book Image

Software Architecture with Spring 5.0

By: René Enríquez, Alberto Salazar

Overview of this book

Spring 5 and its ecosystem can be used to build robust architectures effectively. Software architecture is the underlying piece that helps us accomplish our business goals whilst supporting the features that a product demands. This book explains in detail how to choose the right architecture and apply best practices during your software development cycle to avoid technical debt and support every business requirement. Choosing the right architecture model to support your business requirements is one of the key decisions you need to take when a new product is being created from scratch or is being refactored to support new business demands. This book gives you insights into the most common architectural models and guides you when and where they can be used. During this journey, you’ll see cutting-edge technologies surrounding the Spring products, and understand how to use agile techniques such as DevOps and continuous delivery to take your software to production effectively. By the end of this book, you’ll not only know the ins and outs of Spring, but also be able to make critical design decisions that surpass your clients’ expectations.
Table of Contents (21 chapters)
Title Page
Copyright and Credits
Packt Upsell

Modeling microservices

As developers, we always try to create reusable components to interact with systems or services in order to avoid writing code more than once. Most monolithic applications that we have built so far have followed a three-tier architectural pattern, as shown in the following diagram:

Three-tier architecture

When a change is required in an application that is built using this model, you often need to modify all three layers. Depending on how the application is created, you might need many deployments. Furthermore, since large monolithic applications share a lot of functionality, it's common to find more than one team working on them, which makes it even harder for them to evolve quickly. Sometimes, specialized teams work on particular layers because these layers are comprised of many components. In this way, changes are applied horizontally to make the application grow and evolve.



With microservices, applications evolve vertically because they are modeled around a specific...