In 2017, I wrote the book Learn Microservices with Spring Boot. Initially, it was a self-published project. After a few weeks online, Apress contacted me to publish it as part of its catalog, and I was glad to work with them to make it a better version.
I got a lot of feedback since then, and some technologies used in the book have been updated. Besides, I learned new topics, and came up with better ideas for structuring the contents of a new book.
So I’m now working on a Second Edition of this book with some interesting new additions:
- Spring Boot 2.3.
- More in-detail explanation about how Spring Boot works.
- Smoother learning curve.
- More focus on Non-Functional Requirements, with Resilience and Scalability in practice.
- All the Cloud-native patterns have been updated to use the new standards: Spring Cloud Gateway, Spring Cloud Load Balancer. For consistency, Service Discovery uses now Consul instead of Eureka.
- … and more!
Check the complete Table of Contents at the bottom of this page.
Get a discount
Enter your name and email address and get a discount coupon when the book gets published. You’ll also receive the latest fragments as I’m publishing them as blog posts.
Note: I will NOT share your data or use it with another purpose different than sending you book updates.
The practical case study
All the contents in the book are presented around a practical case study, that evolves each chapter with the introduction of new concepts.
You start with a small monolith, looking at the best design practices, and you learn how Spring Boot works with real examples.
Then, you introduce a second microservice, and study the differences between synchronous and asynchronous communication. That’s how you get to Event-Driven architectures. Once you enter into the world of microservices, you must learn the most important architecture patterns for distributed systems: Gateway, Service Discovery, Load Balancing, Resilience, Scalability, Distributed Tracing, etc.
Table of Contents
Here you can have a sneak peek at the Table of Contents:
- Setting the scene
- Who are you?
- How is this book different from others?
- Online Contents
- Core concepts
- Spring Boot
- Lombok and Java
- Testing basics: TDD, BDD, JUnit, Mockito, AssertJ
- Testing in Spring Boot
- A basic Spring Boot app (+ GitHub Repo)
- Business Requirements
- Setting up the development environment
- The Skeleton Web App
- Spring Boot Auto-Configuration (check the blog post)
- Three-tier, Three-layer Architecture
- Modeling our domain
- Business logic
- The Presentation Layer
- A minimal frontend with React (+ GitHub Repo)
- Quick intro to React and Node
- Setting up the development environment
- The React app skeleton
- The Challenge Component
- Running our frontend for the first time
- Adding CORS configuration
- Playing with the app
- Deploying the frontend
- The data layer (+ GitHub Repo)
- The Data Model
- Choosing a database
- Spring Boot Data JPA
- Storing users and attempts
- New APIs and UI
- Playing with the new feature
- Starting with Microservices (+ GitHub Repo)
- Intro: what happened until now
- The Small Monolith approach
- New requirements and Gamification
- When should we move to microservices?
- Why microservices?
- Architecture Overview
- Designing and implementing the new microservice
- Playing with the system
- Fault Tolerance
- The challenges ahead
- Event-Driven Architecture (+ GitHub Repo)
- Core Concepts
- Pros and Cons of Event-Driven
- Messaging Patterns
- Message Broker Protocols, Standards and Tools
- AMQP and RabbitMQ
- Setting up RabbitMQ
- Spring AMQP and Spring Boot
- Solution Design
- Analysis: happy flow, resilience, and scalability.
- Common Patterns in Microservice Architectures (+ GitHub Repo)
- End-to-End tests with Cucumber
- Online Guide (to be published)
Book’s extra chapters
For this second edition, I’m planning to create book extensions that give you extra insights on other topics not included in the book. Subscribe to the newsletter to get the latest posts and guides.
- Chapter E.1. End-to-End Tests with Cucumber. In this online guide, you’ll learn how to create end-to-end tests to verify the functionality from solving challenges to getting score and badges.