我正在尝试习惯六边形架构,但不知道如何实现常见的实际问题,这些问题已经通过不同的方法实现。我认为我的核心问题是了解提取到适配器和端口的责任级别。
阅读网络上的文章可以使用以下原始示例:
我们有可以在 mysql/txt/s3/nosql 存储中实现的 RepositoryInterface
或者
我们有 NotificationSendingInterface 并有 email/sms/web 推送实现
但这些都是非常精炼的例子,只是接口/实现细节的分离。
然而在实践中,域模型中的编码服务我们通常更深入地了解接口+实现保证。
出于说明目的示例,我决定询问存储+事务对。
存储的事务概念应该如何在十六进制架构中实现?假设我们在域级别有简单的 crud 服务接口
StorageRepoInterface
save(...)
update(...)
delete(...)
get(...)
我们在使用这些方法时需要某种事务保证,例如在一个事务中删除+保存。
它应该如何根据十六进制概念设计和实现?
是否应该使用TransactionalOperation的一些外部协调接口来实现?如果是,那么一般来说,TransactionalOperation必须知道如何实现与StorageRepoInterface的所有实现一起使用的事务保证(mb 在额外的面向事务的操作接口中)
如果不是,那么似乎应该在域级别(十六进制内部)的StorageRepoInterface中使用其他方法提供明确的事务保证?
无论哪种方式,它都不像所述的那样“基于隔离和接口”。
有人可以指出我如何在这种情况下正确改变思维方式或在哪里阅读?
提前致谢。