cqrs
1.0.0
Xendor是一個.NET核心框架,可通過執行單一的責任和分離關注點來創建簡單明潔的設計。它的高級功能非常適合域驅動設計(DDD),命令查詢責任歸屬(CQRS)和事件採購。 Xendor還具有RabbitMQ集成。
命令匯率責任隔離是一種告訴我們將數據與查詢數據相關的操作的模式。它是從命令查詢分離(CQS)CQS派生的,在類上只有兩種方法:突變狀態和返回void的方法以及返回狀態但不會更改的方法。
CQRS是您應用的模式嗎?內部?您的服務/應用程序,您只能將其應用於服務的部分。
與其僅將數據的當前狀態存儲在域中,不如使用僅附錄存儲來記錄對該數據採取的完整動作。該商店充當記錄系統,可用於實現域對象。這可以通過避免同步數據模型和業務領域的需求,同時提高性能,可擴展性和響應性來簡化複雜域中的任務。它還可以為交易數據提供一致性,並保持完整的審計跟踪和歷史記錄,以實現補償措施。
在構建以事件為中心的系統時,投影是一個重要的概念。同時,這非常簡單。
投影是關於從事件流得出當前狀態的。
例如,考慮一種情況,服務器向所有訂戶發布了一系列事件。這些事件與用戶註冊有關,看起來像:
UserAddedToAccount
{
"userId" : 55 ,
"username" : " alemol " ,
"name" : " Alejandro " ,
"lastName" : " Moline "
}UserverifiedEmail
{
"userId" : 55 ,
"email" : " [email protected] "
}用戶求婚
{
"userId" : 55 ,
"lastName" : " Molines "
}我們可以將訂戶附加到這些事件的流中,以將此流將其投影到持續的讀取模型中,用於在Web UI中提供用戶詳細信息。最終讀取模型看起來像:
{
"userId" : 55 ,
"username" : " alemol " ,
"email" : " [email protected] " ,
"name" : " Alejandro " ,
"lastName" : " Molines "
}如果您願意或正在使用此項目,請給它星星。謝謝!
隨意在Github上創建問題。貢獻,拉力請求非常歡迎!
Xendor是版權所有©2019 Alejandro Molines和MIT許可下的其他貢獻者。