Part II: Putting Things Back Together#

將系統拆解為分散式架構之後,架構師必須面對如何「重新組合」的挑戰。本部分探討在分散式環境中重用程式碼的各種模式、如何指派資料所有權並處理分散式交易(distributed transactions)所帶來的一致性問題,以及服務如何存取不屬於自身 bounded context 的資料。此外,本部分深入分析管理分散式工作流的 orchestration 與 choreography 模式、交易型 Saga 的實作策略、服務間契約(contracts)的設計,以及分析型資料的管理方式。貫穿所有章節的核心主題是:每個架構決策都是一種權衡(trade-off),架構師必須學會建構自己的權衡分析框架,才能在具體情境中做出最適當的選擇。