DDD sent event後 如何保證event的順序執行
前一陣子受Speedvan的解惑,明白了不變模式,現在繼續向後方考慮。
Domain的動作產生了事件,事件被sent出到event bus 之類的地方去被持久化,這個順序沒問題吧。
現在假定有一個Domain的兩個事件A1與A2要被持久化,A1在A2之前發生。
譬如:
A1 : 更新person資訊。
A2 : 再次更新person資訊。
這兩個event透過 event bus 被sent到持久端,這個sent很有可能是走網路,那麼如何保證這個兩個event還是按照原來的順序被持久化的呢?
還有一種可能是 雖然是按順序從event bus裡取出,但是server是多CPU的,那麼此時也有可能是這兩個event被兩個cpu同時持久化,這又如何保證其順序是按照事實的發生順序而執行的呢?
以前開發都是跟DB打交道的從而能保證這個順序,因為A1先被持久化了後才是A2。
而現在是 “記憶體”--》 “event bus” --》“持久化”
比較困惑,希望有人來解惑,thanks
Domain的動作產生了事件,事件被sent出到event bus 之類的地方去被持久化,這個順序沒問題吧。
現在假定有一個Domain的兩個事件A1與A2要被持久化,A1在A2之前發生。
譬如:
A1 : 更新person資訊。
A2 : 再次更新person資訊。
這兩個event透過 event bus 被sent到持久端,這個sent很有可能是走網路,那麼如何保證這個兩個event還是按照原來的順序被持久化的呢?
還有一種可能是 雖然是按順序從event bus裡取出,但是server是多CPU的,那麼此時也有可能是這兩個event被兩個cpu同時持久化,這又如何保證其順序是按照事實的發生順序而執行的呢?
以前開發都是跟DB打交道的從而能保證這個順序,因為A1先被持久化了後才是A2。
而現在是 “記憶體”--》 “event bus” --》“持久化”
比較困惑,希望有人來解惑,thanks
相關文章
- laravel Event執行順序Laravel
- js執行順序Event LoopJSOOP
- Java中如何保證執行緒順序執行Java執行緒
- MongoDB 如何保證 oplog 順序?MongoDB
- 關於MQ的幾件小事(五)如何保證訊息按順序執行MQ
- 深入瞭解Flutter的isolate(1) ---- 事件迴圈(event loop)及程式碼執行順序Flutter事件OOP
- 如何保證訊息佇列的順序性?佇列
- Java面試之有三個執行緒T1,T2,T3,如何保證順序執行?Java面試執行緒
- TCP協議如何保證資料的順序傳輸TCP協議
- js Event Loop 執行機制JSOOP
- javascript執行機制:Event LoopJavaScriptOOP
- [RDMA] RDMA的不同操作是否保證順序?
- JavaScript的執行順序JavaScript
- Kafka 如何保證訊息消費的全域性順序性Kafka
- Javascript中的執行機制——Event LoopJavaScriptOOP
- Sql執行順序SQL
- 聊聊如何讓springboot攔截器的執行順序按我們想要的順序執行Spring Boot
- JavaScript執行機制:event-loopJavaScriptOOP
- 分散式訊息佇列:如何保證訊息的順序性分散式佇列
- Event Sourcing + DDD帶來的模型重構問題如何解決?模型
- JavaScript執行順序分析JavaScript
- 任務執行順序
- for語句執行順序
- mySQL 執行語句執行順序MySql
- Javascript 執行機制詳解,Event LoopJavaScriptOOP
- JavaScript 執行機制--Event Loop詳解JavaScriptOOP
- 關於 Promise 的執行順序Promise
- Spring Aop的執行順序Spring
- SQL 語句的執行順序SQL
- CSS規則的執行順序CSS
- Java類的基本執行順序Java
- SQL 執行順序 你懂的SQL
- pipeline的執行順序
- mysql 語句的執行順序MySql
- C++程式丟擲異常後執行順序C++
- sql mysql 執行順序 (4)MySql
- SQL語句執行順序SQL
- JavaScript for迴圈 執行順序JavaScript