flowing retail
1.0.0
此範例應用程式演示了一個簡單的訂單履行系統,該系統被分解為多個獨立的組件(如微服務)。
該儲存庫包含多種實現替代方案的程式碼,以允許廣大受眾理解程式碼並比較替代方案。下表列出了這些替代方案。
此範例尊重領域驅動設計 (DDD) 、事件驅動架構 (EDA) 和微服務 (μS)的經驗教訓,旨在讓您親身體驗這些主題。
注意:編寫程式碼是為了解釋。因此,我更喜歡簡化程式碼或複製貼上,而不是使用通用解決方案的生產就緒程式碼。不要將程式設計風格視為最佳實踐!它是專門為易於解釋的程式碼而編寫的。
您可以在 O'Reilly 的《實用流程自動化》一書中找到有關這些概念的更多資訊。
流動零售模擬了一個非常簡單的訂單履行系統:
最根本的選擇是選擇通訊機制:
通訊機制之後,下一個選擇就是工作流程引擎:
和程式語言:
流動零售模擬了一個非常簡單的訂單履行系統。業務邏輯分為上面所示的服務(顯示為上下文對應)。
有些服務本質上是長期運作的- 例如:支付服務要求客戶更新過期的信用卡。工作流程引擎用於保存和控制這些長時間運行的交互作用。
請注意,狀態機(或本例中的工作流程引擎)是一個服務中使用的函式庫。如果不同的服務需要工作流程引擎,他們可以運行他們想要的任何引擎。這樣,團隊就可以自主決定是否要使用框架以及使用哪個框架: