Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Software Architecture with Spring
Software Architecture with Spring

Software Architecture with Spring: Design scalable and high-performance Java applications with Spring

Arrow left icon
Profile Icon Wanderson Xesquevixos
Arrow right icon
$26.99
eBook Jun 2025 464 pages 1st Edition
eBook
$26.99
Paperback
$26.99 $33.99
Subscription
Free Trial
Renews at $19.99p/m
Arrow left icon
Profile Icon Wanderson Xesquevixos
Arrow right icon
$26.99
eBook Jun 2025 464 pages 1st Edition
eBook
$26.99
Paperback
$26.99 $33.99
Subscription
Free Trial
Renews at $19.99p/m
eBook
$26.99
Paperback
$26.99 $33.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Software Architecture with Spring

Diving into Software Architecture

Software architecture is the cornerstone of successful software development, bridging the gap between complex technical requirements and strategic business objectives. It not only shapes the blueprint for system design and implementation but also ensures the delivery of high-quality, robust, and efficient software solutions. Beyond guiding strategic decisions, software architecture is pivotal in managing the software development life cycle, optimizing costs, and mitigating risks while enhancing communication with stakeholders.

This chapter delves into the essence of software architecture, shedding light on its critical role in the strategic planning of software projects and clarifying the nuanced distinctions between software design and architecture. We will explore key architectural principles, examine prevalent architectural styles, and unravel the implications of the CAP theorem and architectural styles to select the most suitable database for...

Technical requirements

All the code for this chapter can be found on GitHub at https://github.com/PacktPublishing/Software-Architecture-with-Spring/tree/main/ch1. Ellipses in the code blocks indicate that parts of the code have been omitted, and the complete code is available on GitHub.

Definition and the importance of software architecture

Much like the architectural blueprint for a building, software architecture is foundational in developing successful software systems. It can be briefly described as the fundamental structure of a software system that defines components, their interactions, and the overarching principles guiding its evolution. This blueprint ensures that software meets technical specifications and business objectives while remaining flexible, secure, and efficient over time.

Importance of software architecture

Software architecture is a crucial and indispensable aspect of software development. Without it, projects can quickly become disorganized and chaotic, leading to costly mistakes and missed deadlines. So, if you want your software development projects to succeed, note the critical role of software architecture. Are you curious about the crucial elements that make software architecture indispensable to software development?

Let’...

A journey through software design and architecture

Having established a solid grasp of software architecture and its significance, we’ll now progress to the subsequent stage of the software development cycle: the intricacies of software design.

Setting apart the realms of software architecture and software design

Using a brief analogy of the construction of a home, we could say that software architecture is like the blueprint of a house – outlining its overall structure, defining the rooms and their relationships, and ensuring it meets broader objectives and regulations. Software design, however, delves into the specifics, akin to choosing interior finishes, planning the electrical and plumbing details, and selecting construction materials. While architecture sets the foundational vision, design handles the detailed execution that brings this vision to life.

Software architecture and software design are critical phases in software development, focusing on structuring...

Principles of software architecture

In the ever-evolving landscape of software development, architects and developers are continually challenged to design systems that are not only functional and performant but also maintainable, scalable, and resilient to change. The key to achieving such a balance lies in adhering to foundational principles that have been distilled from decades of collective experience and wisdom in software engineering. These principles are the bedrock upon which reliable and efficient software systems are built.

Exploring coupling and cohesion

Coupling is often compared to cohesion. Typically, low coupling is associated with high cohesion, and the reverse is also true. Larry Constantine introduced the software quality metrics of coupling and cohesion in the late 1960s within the framework of structured design, emphasizing “good” programming practices aimed at minimizing costs related to maintenance and modifications.

Mastering coupling

...

Overview of the most common architectural styles

In software development, architectural styles are crucial in determining how systems are structured and how they will function. Each architectural style has its own set of principles and patterns that address specific problems and requirements. Selecting a software architectural style is a critical decision in the software development process, as it impacts the application’s performance, maintainability, scalability, and overall success. We will discuss some common concerns that developers and architects may have when selecting an architectural style. We will then provide an overview of some of the most common architectural styles.

Common concerns when selecting a software architectural style

Here are some common concerns that developers and architects must have in mind when selecting a software architectural style:

  • Cost: Consideration of the financial aspects, including initial development, deployment, maintenance...

Selecting a database by architectural style

Selecting the proper database in alignment with an application’s architectural style is crucial for optimizing performance, scalability, and reliability. This choice is influenced by the unique requirements of different architectural styles and necessitates a deep understanding of database technologies and their characteristics.

Types of databases

Databases can be categorized into various types based on their data model, architecture, and use cases. Here are the main types of databases.

Relational databases (RDBMSs)

These databases store data in tables, which are linked to each other through relationships, typically using SQL for data manipulation and queries. They are known for their Atomicity, Consistency, Isolation, and Durability (ACID) properties, ensuring reliable transactions. Examples include MySQL, PostgreSQL, Oracle, and Microsoft SQL Server.

NoSQL databases

NoSQL databases are recognized for their adaptability...

Summary

In this chapter, we learned about the critical role of software architecture in successful software development. We saw that software architecture is more than just the blueprint for system design and implementation; it is the pivotal force that bridges the gap between intricate technical requirements and strategic business objectives. This foundational element ensures the delivery of high-quality, robust, and efficient software solutions, guiding strategic decisions throughout the software development life cycle, optimizing costs, and mitigating risks.

Then, we moved our discussion on to explaining the delineation between software architecture and design, exploring the key principles of software architecture. We were also introduced to prevalent architectural styles, highlighting the benefits and challenges posed by monolithic architecture, client-server architecture, microservices architecture, EDA, serverless architecture, and pipe and filter architecture.

Finally...

Questions

  1. What is the fundamental role of software architecture in software development?
  2. How does software architecture differ from software design?
  3. How do architectural decisions affect software quality attributes such as performance, security, and maintainability?
  4. Why are principles such as low coupling and high cohesion important in software architecture?
  5. What benefits and challenges does the microservices architecture offer?
  6. What is the significance of the CAP theorem in the context of database selection?
Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Confidently make strategic architectural choices that align business needs with technical excellence
  • Design and evolve a real-world system using the right architectural patterns
  • Explore essential architectural styles and tackle challenges like scalability, security, and maintainability with ease
  • Purchase of the print or Kindle book includes a free PDF eBook

Description

Keep up with the fast-paced tech landscape with Software Architecture with Spring, your practical guide to making strategic architectural decisions that align seamlessly with your business objectives. Drawing from Wanderson's decades of experience, you'll journey through the complete software development lifecycle—from initial requirements gathering, through development and testing, to production deployment. You'll get hands-on with the evolution of an auction system, exploring its transformation through multiple architectural styles. You’ll discover how you can effectively transform a monolithic system into microservices using proven patterns and practices. As you progress, you’ll master advanced architectural paradigms such as Event-Driven Architecture, Filter-and-Pipeline Architecture, and Serverless Architecture.

Who is this book for?

This book is for Java engineers transitioning to software architecture roles and architects seeking deeper insight into Spring-based architectural styles. Mid-level Spring Boot developers will be able to master architecture principles to build scalable, maintainable applications with the help of practical guidance on using modern architectural patterns. To get the most out of this book, being proficient in Java with an object-oriented programming background, and having a solid understanding of the Spring Framework is essential. It would help to have a basic knowledge of Git and Maven, as well as databases, Docker, and Docker Compose.

What you will learn

  • Translate complex business needs into clear and implementable design
  • Design resilient systems with common architectural styles
  • Transform monolithic applications into microservices following best practices
  • Implement event-driven architecture with Kafka
  • Monitor, trace, and ensure robust testing, security, and performance
  • Identify bottlenecks and optimize performance using patterns, caching, and database strategies
  • Automate development workflows with CI/CD pipelines, using Jenkins to deploy the application to Kubernetes

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jun 23, 2025
Length: 464 pages
Edition : 1st
Language : English
ISBN-13 : 9781835880616
Category :
Languages :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Jun 23, 2025
Length: 464 pages
Edition : 1st
Language : English
ISBN-13 : 9781835880616
Category :
Languages :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
Visually different images

Table of Contents

20 Chapters
Part 1:Foundations of Software Architecture Chevron down icon Chevron up icon
Chapter 1: Diving into Software Architecture Chevron down icon Chevron up icon
Chapter 2: Decision-Making Processes in Software Architecture Chevron down icon Chevron up icon
Chapter 3: Understanding the System Context Chevron down icon Chevron up icon
Part 2: Exploring Architectural Styles Chevron down icon Chevron up icon
Chapter 4: Monolithic Architecture Chevron down icon Chevron up icon
Chapter 5: Client-Server Architecture Chevron down icon Chevron up icon
Chapter 6: Microservices Architecture Chevron down icon Chevron up icon
Chapter 7: Microservices Patterns with Spring Cloud Chevron down icon Chevron up icon
Chapter 8: Event-Driven Architecture Chevron down icon Chevron up icon
Chapter 9: Pipe-and-Filter and Serverless Architecture Chevron down icon Chevron up icon
Part 3: Advanced Topics in Modern Software Development Chevron down icon Chevron up icon
Chapter 10: Security Chevron down icon Chevron up icon
Chapter 11: Observability Chevron down icon Chevron up icon
Chapter 12: Testing Chevron down icon Chevron up icon
Chapter 13: Performance and Optimizations Chevron down icon Chevron up icon
Chapter 14: Orchestration with Kubernetes Chevron down icon Chevron up icon
Chapter 15: Continuous Integration and Continuous Deployment Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.