Sam Newman là tác giả Building Microservices, một trong những cuốn sách đầu tiên về chủ đề này. Cuốn tiếp theo này hẹp hơn và, theo mình, hữu ích hơn cho phần lớn các team: nó giả định bạn đã có một hệ thống đang chạy và hỏi có nên, khi nào và làm sao tách nó ra mà không phải dừng mọi việc khác. Câu trả lời là một danh mục pattern migration được bọc trong rất nhiều sự hoài nghi cẩn trọng.
Hai thông điệp của cuốn sách rất đơn giản. Hãy quyết định dựa trên mục tiêu và bối cảnh của chính bạn thay vì bắt chước các công ty nổi tiếng, và nếu migrate thì làm từng bước, bằng những bước nhỏ đi tới production và đảo ngược được. Gần như mọi pattern trong sách, từ strangler fig tới saga, tồn tại để những bước nhỏ đó khả thi.
Điều mình trân trọng nhất là Newman thường xuyên phản biện chính chủ đề của mình. Ông gọi monolith là một lựa chọn hợp lệ, khuyên nhiều tổ chức dùng modular monolith, và đưa ra một lựa chọn rẻ hơn cho mọi lý do phổ biến để áp dụng microservices. Ở năm 2026, sau một giai đoạn nhiều team công khai gộp service lại, sự cân bằng đó đọc lên như một tầm nhìn xa.
Sách dành cho ai
- Backend và full-stack developer đang làm việc với một hệ thống lớn, đang chạy, đã trở nên chậm thay đổi.
- Tech lead và architect đang chuẩn bị đề xuất migration, hoặc được nhờ đánh giá một đề xuất.
- Engineering manager cần hiểu phía tổ chức: quyền sở hữu của team, kỹ năng, và cách biết migration có hiệu quả không.
- Frontend developer trong team đang trải qua việc tách hệ thống. Phần UI composition và chương về dữ liệu giải thích nhiều quyết định mà nếu không đọc thì sẽ đến với bạn như những bất ngờ.
Bạn không cần đọc Building Microservices trước. Newman giới thiệu vừa đủ khái niệm ở chương 1, và chỉ sang cuốn lớn hơn khi cần đào sâu về giao tiếp, deployment và testing.
Đọc thế nào cho hiệu quả
Sách khoảng 270 trang với sáu chương, và các chương không ngang nhau.
- Chương 1 (bắt buộc). Định nghĩa, các loại monolith, coupling và DDD vừa đủ. Ngắn và là nền móng.
- Chương 2 (bắt buộc, đọc chậm). Có nên migrate không, các lựa chọn thay thế cho từng mục tiêu, bắt đầu từ đâu, thay đổi team và cách đo tiến độ. Đây là chương nên mang theo vào các buổi lên kế hoạch.
- Chương 3 (bắt buộc, dùng làm tài liệu tra cứu). Các pattern migration cho code. Đọc kỹ phần strangler fig và branch by abstraction; lướt các ví dụ về protocol trừ khi chúng giống hệ thống của bạn.
- Chương 4 (bắt buộc nếu bạn sở hữu dữ liệu). Chương dài nhất. Đọc kỹ các phần shared database, sequencing và saga; các pattern ở mức schema có thể quay lại khi gặp đúng vấn đề.
- Chương 5 (lướt, rồi quay lại). Những vấn đề khi lớn lên, sắp xếp theo thời điểm chúng hay xuất hiện. Đọc một lần để nắm, và đọc lại khi số service tăng.
- Chương 6. Một phần kết ngắn.
Kế hoạch thực tế là một đến hai tuần, cứ vài ngày một chương. Để luyện tập, hãy lấy một tính năng của hệ thống bạn hiểu rõ, đặt nó lên hai trục độ dễ và giá trị của Newman, và phác ra bạn sẽ dùng pattern nào ở chương 3 và pattern nào ở chương 4 để tách nó. Kể cả khi không bao giờ tách, bài tập này cũng làm lộ ra coupling ẩn.
Năm 2026 còn nên đọc không?
Có. Mình không tìm thấy phiên bản mới hơn của cuốn này; nó vẫn là bản đầu tiên năm 2019. Cuốn anh em Building Microservices đã có bản thứ hai vào tháng 8/2021, đi sâu hơn nhiều về kiểu giao tiếp, deployment, testing, bảo mật và tổ chức team, nên hai cuốn bổ sung cho nhau rất tốt: cuốn này cho hành trình migration, cuốn kia cho đích đến.
Phần đã cũ chủ yếu là chi tiết tooling. Service mesh, thứ Newman khuyên nên chờ, đã trưởng thành (ambient mode không cần sidecar của Istio đạt GA vào tháng 11/2024). OpenTelemetry, đã tốt nghiệp CNCF vào tháng 5/2026, biến tracing thành một chuẩn chứ không còn là lựa chọn vendor. Sách không gọi tên outbox pattern, giờ là cách thông dụng để phát event một cách tin cậy, và Debezium đã thành lựa chọn phổ biến cho change data capture.
Phần giữ giá trị tốt là sự phán đoán. Ngành đã nghiêng về modular monolith và thôi mặc định tách, khá gần với lập trường Newman giữ suốt cuốn sách. Nên đọc kèm:
- Building Microservices, bản thứ 2, cho kiến trúc đích.
- Team Topologies, cho việc thiết kế team trong lúc migration.
- Tài liệu hiện hành của các công cụ bạn chọn: OpenTelemetry, Debezium, Pact, và công cụ routing cùng feature flag của nền tảng bạn dùng.
Guide này gồm những phần nào
- Microservices vừa đủ hiểu: independent deployability, các loại monolith, bốn dạng coupling và những điều cốt lõi về aggregate và bounded context.
- Lên kế hoạch migration: ba câu hỏi then chốt, các lựa chọn rẻ hơn, khi nào không nên migrate, chọn chỗ bắt đầu và đo tiến độ.
- Tách monolith: strangler fig, UI composition, branch by abstraction, parallel run, decorating collaborator và change data capture.
- Tách database: các coping pattern cho shared database, quyền sở hữu dữ liệu, tracer write, schema-first so với code-first, foreign key, reference data và saga.
- Những vấn đề khi lớn lên: mười vấn đề xuất hiện khi số service tăng lên, cách nhận ra từng vấn đề từ sớm, và lời kết của sách.
Về ghi chú này
Đây là ghi chú đọc sách cá nhân, viết bằng lời của mình với ví dụ của mình, phần lớn lấy từ một nền tảng khoá học online thay vì Music Corp của sách. Mục đích là giúp bạn quyết định có nên đọc và đọc thế nào, đồng thời nối nội dung sách với thực tế năm 2026. Nó không thay thế cuốn sách: các case study, lập luận đằng sau từng pattern và vô số đánh giá "khi nào nên dùng" chỉ có trong sách.
Sách có trên O'Reilly.