我目前正在爲我的Go Actor實現EventSourcing。 我現在面臨的問題是,當一名演員重新啓動並需要從事件日誌中重播所有狀態時,該查詢可能會返回不一致的數據。 我知道我可以用MutationToken
ConsISntent N1QL查詢Couchbase GOCB sdk
但是,如果我這樣做,我將被迫按順序編寫所有事件,即最後寫入最後一個事件。
這樣,最後一個事件的變異標記就足以獲得特定演員的所有數據。
然而,這是非常緩慢的,按順序寫約10 000個事件,我的設置大約需要5秒。
如果我改寫這些10 000異步,使用go例程,我可以在不到一秒內寫入所有數據。 但是,然後寫入是不確定的順序,我可以知道我可以信任哪個變化標記。 例如事件999可能會在事件843之前寫入,因爲要執行例行調度AFAIK。
我在這裏有什麼選擇?