微服務不是「比較進步」,是用部署與團隊的獨立性換取分散式系統的複雜度。多數系統應該從單體開始。
🧠 Core Ideas
TIP
問題不是「微服務還是單體」,是「我現在需要付分散式的稅,去買哪一種獨立性嗎?」
- 微服務買到的:獨立部署、獨立擴展、團隊自治、技術異質。
- 要付的稅:網路不可靠、分散式交易、資料一致性、可觀測性、維運成本。
⚖️ Tradeoffs
什麼時候單體更好
- 團隊小、領域邊界還不清楚時 → 單體迭代快、重構成本低。
- 「模組化單體 (Modular Monolith)」可先取得清晰邊界,之後再依需要拆出服務。
拆分的判準
- 沿業務能力 / DDD 限界上下文拆,而非技術分層。
- 拆分點要讓「一起改的東西在一起」——避免一個需求要改五個服務。
- 資料庫各自擁有,避免共享資料庫把服務又耦回去。
🔑 Takeaways
- 預設從單體 / 模組化單體開始,有明確痛點再拆。
- 微服務買的是獨立性,付的是分散式複雜度——確認值得再上。
- 拆分沿業務能力與限界上下文,資料庫各自擁有。
No notes yet — jot your takeaways or Q&A here.