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
相關文章
- js執行順序Event LoopJSOOP
- Java中如何保證執行緒順序執行Java執行緒
- 深入瞭解Flutter的isolate(1) ---- 事件迴圈(event loop)及程式碼執行順序Flutter事件OOP
- 關於MQ的幾件小事(五)如何保證訊息按順序執行MQ
- 如何保證訊息佇列的順序性?佇列
- js Event Loop 執行機制JSOOP
- javascript執行機制:Event LoopJavaScriptOOP
- Javascript中的執行機制——Event LoopJavaScriptOOP
- 聊聊如何讓springboot攔截器的執行順序按我們想要的順序執行Spring Boot
- pipeline的執行順序
- Java面試之有三個執行緒T1,T2,T3,如何保證順序執行?Java面試執行緒
- TCP協議如何保證資料的順序傳輸TCP協議
- JavaScript執行機制:event-loopJavaScriptOOP
- Sql執行順序SQL
- [RDMA] RDMA的不同操作是否保證順序?
- Kafka 如何保證訊息消費的全域性順序性Kafka
- Spring Aop的執行順序Spring
- JavaScript 執行機制--Event Loop詳解JavaScriptOOP
- NodeJS Express 中建立html5的server-sent event服務端NodeJSExpressHTMLServer服務端
- JavaScript執行順序分析JavaScript
- mySQL 執行語句執行順序MySql
- 分散式訊息佇列:如何保證訊息的順序性分散式佇列
- Js與Nodejs的event-loop的執行機制NodeJSOOP
- SQL 語句的執行順序SQL
- mysql 語句的執行順序MySql
- 關於 Promise 的執行順序Promise
- event_x ()、event_y ()、event_x_root ()、event_y_root ()
- 帶你瞭解JavaScript的執行機制—Event LoopJavaScriptOOP
- SQL語句執行順序SQL
- Select語句執行順序
- sql mysql 執行順序 (4)MySql
- 路由的中介軟體執行順序路由
- Camunda 流程執行錯誤處理ERROR BOUNDARY EVENTError
- oracle驗證設定的event是否生效:Oracle
- python3執行緒中的事件Event怎麼用?Python執行緒事件
- 如何使用ReentrantLock的條件變數,讓多個執行緒順序執行?ReentrantLock變數執行緒
- event.preventDefault()和event.stopPropagation()
- Pytest 順序執行,依賴執行,引數化執行
- async await、Promise、setTimeout執行順序AIPromise