考慮一個函數:IsWalletValid(walletID)。如果walletID存在於數據庫中,它將返回true,並更新'last_accessed_time'字段。分離命令和查詢時更新上次訪問時間
定期運行一項任務,以移除任何在設定的時間段內未被訪問的錢包。
似乎是一個簡單的解決方案,但我們想要做什麼,但IsWalletValid()有副作用,因爲它寫入數據庫。
我們是否應該添加額外的'UpdateLastAccessedTime(walletID)'功能?每次我們調用IsWalletValid()時,我們還需要記住調用UpdateLastAccessedTime(walletID)。
爲什麼你需要更新'last_accessed_time'字段? –
如果沒有人訪問一個錢包幾天,它不再需要,可以刪除。 – GarethOwen
CQRS最適合於事件採購,因爲否則重建輔助(持久性)商店變得非常困難。隨着事件採購,你永遠不會刪除任何東西,所以如果你想刪除錢包,我想知道如果CQRS是正確的架構..? –