CQRS は、すぐに一貫性のあるモデルの事後条件をどのように処理しますか? このようなことは、イベント ソーシングなどを使用した最終的に一貫性のあるシステムでは無関係であることに気付きました。しかし、バニラ CQRS を単純なインターフェイスに適用したいだけの場合、事後条件をどのように記述すればよいでしょうか? CQRS の考えは常に結果整合性を前提としていますか?
クラッド:
IDictionary
{
void Set(string key, object value); // Ensures: Get(key) == value
object Get(string key);
}
CQRS:
IDictionaryQueries
{
object Get(string key);
}
IDictionaryCommands
{
void Set(string key, object value); // Ensures: ???
}