内容简介:将一小部分事件标记为公共事件,默认情况下保持其他事件为私有。(有界上下文内部时私有,有界上下文或微服务之间发送消息事件是公有,分成两个不同的消息主题通道)领域事件 不仅可用于与其他有界上下文进行通信,还可用于组织和解耦有界上下文中的代码,在CQRS / Eventsourcing架构中甚至是组织代码的主要方式。
将一小部分事件标记为公共事件,默认情况下保持其他事件为私有。(有界上下文内部时私有,有界上下文或微服务之间发送消息事件是公有,分成两个不同的消息主题通道)
问题
领域事件 不仅可用于与其他有界上下文进行通信,还可用于组织和解耦有界上下文中的代码,在CQRS / Eventsourcing架构中甚至是组织代码的主要方式。
使用单一总线发布所有这些事件非常方便,有效地使它们全部公开。当其中一些事件包含敏感数据时,这是一个问题。更重要的是, 外部API与有界上下文的内部结构紧密耦合。更改内部会强制进行API更改。
解决
在有界上下文内部和外部设置单独的消息传递通道:默认情况下将所有事件保持为私有;对于要公开的事件使用显式@Public注释,标记接口或用isPublic():bool方法指示。
发送事件时,事件发布机制必须知道读取注释并仅在私有信道上发送事件,或者在私有和公共信道上发送事件。
讨论
一般来说,我的感觉是,仔细选择领域事件以反映业务领域,使用泛在的统一语言,并以正确的粒度时设计事件时,很少有问题发生。然后,这些事件在开发过程中会很快变得稳定,很少需要改变。当t域中的有重要改变时,事件可能需要更改,但在这些情况下,无论如何都需要API更改。
也就是说,它是软件设计中一种普遍有用的启发式方法,可以使所有内容尽可能地保持封闭状态,并且仅在有好的情况下打开它。
以上所述就是小编给大家介绍的《分布式系统中解耦的模式:显式化公共化你的领域事件 - mathiasverraes》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
《10%创业家》
[美] 帕特里克•J.麦金尼斯 / 李文远 / 广东人民出版社 / 2017-4 / 45.00
还在打工和创业之间苦苦挣扎吗?麦金尼斯用亲身经历告诉你,不用辞职,只需投入10%的时间和资源,就能获得100%的财务自由。你不需要雄厚的资本,也不必占用工作时间,只要准确掌握本书所授的方法,就能立即开始创业。 麦金尼斯是世界银行风投顾问,同时也是一名10%创业家。在本书中,他结合自身的创业咨询经历,为读者讲解了移动互联时代的5种创业模式,还提供了创业基因测试、10%创业计划、自传模板等个性化......一起来看看 《《10%创业家》》 这本书的介绍吧!