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许可下的其他贡献者。