上下文映射的通信集成模式

防腐層與開放主機服務

目的:降低限界上下文之間的耦合關係

 

防腐層:(下游限界上下文對 上游限界上下文變化的隔離)

是什麼:設計思想“間接”的一種體現

方法:通過引入一個間接的層,就可以

目的:有效隔離限界上下文之間的耦合

設計模式:間接的防腐層還可以扮演“適配器”的角色、“調停者”的角色、“外觀”的角色

 

防腐層往往屬於下游限界上下文,用以

目的:隔絕上游限界上下文可能發生的變化。

 

下游團隊終究可能面臨不可掌控的上游變化。

在防腐層中定義一個映射上游限界上下文的服務接口,就可以將掌控權控制在下游團隊中,

即使上游發生了變化,影響的也僅僅是防腐層中的單一變化點,只要防腐層的接口不變,下游限界上下文的其他實現就不會受到影響。

 

圖例:

無防腐層:

下游上下文可能存在多處上游上下文領域模型的依賴,一旦上游發生變更,就會影響到下游的多處實現

 

有防腐層:

多處依賴轉爲對防腐層的依賴

由防腐層指向上游上下文,形成單一依賴

好處:上游變更時,影響的僅僅是防腐層,下游上下文自身並未受到影響。

 

防腐層對遺留系統治理:

將遺留系統視爲一個整體的限界上下文,然後爲調用它的下游上下文建立防腐層

 

在防腐層內:

從調用者角度思考需要公開的服務接口,並引入領域驅動設計爲其提煉出清晰的領域模型,然後再從遺留系統中去尋找對應的實現,慢慢將合適的代碼搬移過來,適時對其重構

 

開放主機服務:(上游限界上下文的承諾)

防腐層是下游限界上下文對抗上游變化的利器

 

開放主機服務就是上游服務用來吸引更多下游調用者的誘餌

實現:定義公開服務的協議,包括通信的方式、傳遞消息的格式(協議)。同時,也可視爲是一種承諾保證開放的服務不會輕易做出變化

 

目的:降低上游與下游限界上下文之間的依賴

 

發佈/訂閱事件:

事件(消息 解耦):

 

適用範圍:異步非實時的業務場景

優點:

1 解耦

2 非阻塞特性也使得整個架構具有更強的響應能力

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章