2017-08-03 112 views
1

我正在嘗試使用事件採購概念爲訂單/交易過程開發微服務。員工可以通過電話爲客戶下訂單/交易。系統還會記錄客戶分組的訂單數量。它使用AWS Kinesis將orderCreated事件中的客戶ID發送到客戶數據服務,以便我們可以增加創建的訂單數量。我們根據DDD概念將訂單處理和客戶分開。但是,當員工爲訂單選擇錯誤的客戶ID時,我們應該預料到人爲錯誤。所以,有一個功能可以改變客戶的相關訂單。與多個記錄相關的事件採購編排

問題是orderUpdated事件只包含訂單的最新數據。這意味着該活動只有新的客戶ID。我們可以增加新客戶的訂單數量。但是,我們應該減少先前客戶ID的訂單數量。

如何解決這個問題?你能給我一些建議嗎?

在此先感謝

+0

客戶訂單數量在哪裏存儲?它是否也存儲在使用orderUpdated和orderCreated事件的消費者中? –

+0

客戶訂單計數存儲在客戶數據快照中。消費者只是消費事件並確定客戶訂單計數是應該遞增還是遞減。你有什麼建議讓它變得更好嗎? – Benedict

回答

1

這聽起來像一個OrderUpdated事件是不夠精細,以滿足您的需求。根據您提供的信息,您可能希望有一個更具體的事件,如OrderCustomerChanged,其中包含新的和舊的客戶ID。

+0

順序域事件(orderCreated,orderUpdated和orderCustomerChanged)有沒有不同的數據結構? – Benedict

+1

是 - 每個事件類型都是獨立的,並且可以具有任何最適合的結構。 – Codescribler

+1

不錯,簡單而且往往不是那麼明顯的答案。 –