Monolith To Microservices
Monolith To Microservices is a new book on system decomposition from O'Reilly
How do you detangle a monolithic system and migrate it to a microservices architecture? How do you do it while maintaining business-as-usual? As a companion to Building Microservices, this new book details multiple approaches for helping you transition from existing monolthic systems to microservice architectures. This book is ideal if you're looking to evolve your current systems, rather than just rewriting everything from scratch.
How To Get The Book
The book is now available, and you can order the dead-tree and Kindle versions over at Amazon. You can also read the book online on O'Reilly's online learning platform.
Read on O'Reilly Learning Online Order at Amazon.com Order at Amazon.co.ukVideo Overview
Translations And Other Formats
At present, there are plans to translate the book into Portuguese, German, and Chinese (simplified), in addition to creating an audio book. I'll update this page with details of when these editions are available, along with information of any other confirmed translations.
Topics
- Should you migrate to microservices, and if you should, how do you prioritise where to start
- How do you incrementally decompose an application
- Discusses multiple migration patterns and where they apply
- Delves into details of database decomposition, including the impact of breaking referential and transactional integrity, new failure modes, and more
- The growing pains you'll experience as your microservice architecture grows
Table Of Contents
-
Chapter 1: Just Enough Microservices
- What Are Microservices?
- The Monolith
- On Coupling And Cohesion
- Just Enough Domain-Driven Design
-
Chapter 2: Planning A Migration
- Understanding The Goal
- Why Might You Choose Microservices?
- When Might Microservices Be A Bad Idea?
- Trade-offs
- Taking People On The Journey
- Changing Organizations
- Importance Of Incremental Migration
- Cost Of Change
- Domain-Driven Design
- Reorganizing Teams
- How Will You Know If It's Working?
-
Chapter 3: Splitting The Monolith
- To Change The Monolith, Or Not?
- Pattern: Strangler Fig Applications
- Changing Behavior While Migrating Functionality
- Pattern: UI Composition
- Pattern: Branch by Abstraction
- Pattern: Parallel Run
- Pattern: Decorating Collaborator
- Pattern: Change Data Capture
-
Chapter 4: Decomposing The Database
- Pattern: The Shared Database
- Pattern: Database View
- Pattern: Database Wrapping Service
- Pattern: Database-as-a-Service Interface
- Transfering Ownership
- Data Synchronization
- Pattern: Synchronize Data In Application
- Pattern: Tracer Write
- Splitting Apart The Database
- Pattern: Split Table
- Pattern: Move Foreign-Key Relationship To Code
- Transactions
- Sagas
-
Chapter 5: Growing Pains
- More Services, More Pain
- Breaking Changes
- Reporting
- Monitoring and Troubleshooting
- Local Developer Experience
- Running Too Many Things
- End-to-end Testing
- Global Verses Local Optimization
- Robustness and Resiliency
- Orphaned Services
-
Chapter 6: Closing Words
-