大意如下:
Clean Architecture 與 microservices 是兩個正交的概念:
- Clean Architecture 是指軟體系統的設計要可以清楚地區分成 entity, use cases, controller & gateway & presenter 這三個圈圈。之後才可以不斷地配合需求而修改。
- microservices 是一種 deployment option (布署選項) ,而且這個布署的選項有它的 trade-off 。此外,還有其它的布署選項。使用不同的布署選項,是為了達成不同的 scalability 。
其它相關的布署選項還有:
- 在同一個 thread 裡的 jar ,彼此透過函數來溝通。
- 在同一個 process 裡的 thread ,彼此透過 mailbox 或是 queue 溝通
- 在同一台 machine 裡的不同 process ,彼此透過 socket 溝通
- 在 Internet 上不同的 services ,彼此透過 asynchronous API 溝通
注意: jar 也可以達成 independent deployability (可獨立布署性) 和 hot swapping (程式碼熱抽換。) 所以也是相關的 deployment option