【发布时间】:2018-02-19 14:24:37
【问题描述】:
我宁愿有一个单独的 CommandBus 和 EventBus 以及 ICommandHandler<TCommand> 和 IEventHandler<TCommand> 以便 OrderEventHandler 类看起来像:
public class OrderEventHandler :
IEventHandler<OrderPlaced>,
IEventHandler<OrderRegistrantAssigned>,
IEventHandler<OrderTotalsCalculated>,
IEventHandler<OrderConfirmed>,
IEventHandler<OrderExpired>,
IEventHandler<SeatAssignmentsCreated>,
IEventHandler<SeatAssigned>,
IEventHandler<SeatAssignmentUpdated>,
IEventHandler<SeatUnassigned>
{
public void Handle(OrderPlaced @event){...}
.
.
.
}
一个可能的解决方案是在Masstransit 基础设施和我的CQRS 之间提供一个采用者(比如ConsumerToHandlerAdopter<T>,它只公开我通常需要的上下文细节)。
但由于我是 Masstransit 的新手,我无法理解以后可能需要处理的问题。
所以我的问题是: 通常是否值得封装 Masstransit 以便我处理自己的基础架构?
【问题讨论】:
-
您是否使用消息队列/总线来同步读取模型和写入模型?你能在这里看看我的问题吗? softwareengineering.stackexchange.com/questions/378205/… +1。
-
鲍勃叔叔:不要嫁给框架!哦,你可以使用这个框架——只是不要耦合它。保持距离。将框架视为属于架构外圈之一的细节。不要让它进入内圈。
标签: c# message-queue microservices cqrs masstransit