Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
“事务”是任何大规模架构中最糟糕的耦合类型 - techleadjournal
23-02-17
banq
Neal Ford 是 ThoughtWorks 的总监兼软件
架构
师。在这一集中,我们讨论了关于软件架构的所有内容,涵盖了他最近的三本书:“软件架构基础”、“软件架构:硬部分”和“构建演化架构”。我们首先讨论了软件架构的定义以及它与软件设计的关系。Neal 随后描述了与权衡相关的软件架构的两个重要法则及其原因。Neal 然后解释了为什么软件架构很困难,并讨论了困难的部分,例如找到最差的组合权衡、理解数据的重要性以及管理耦合。
当我们第一次开始使用 COM 和 CORBA 以及类似技术进行大量事件驱动架构时,我们大多仍将事务行为归于数据库,因为我们仍在与一个大型关系数据库对话。
然后,领域驱动设计出现了。该建议的一部分是
有界上下文
BC的想法,这意味着现在数据持久性是有界上下文的一部分。
它需要在架构级别进行隔离,这意味着现在事务性突然成为架构问题,而不仅仅是数据问题。
当您开始不得不在架构级别管理事务行为时,它会使软件架构中的很多事情复杂化,因为它真的很难建模。
这种事务性是任何一种架构中最糟糕的耦合,因为你迫使架构中越来越广泛的部分统一在一个单一的值上,基本上,事务性意味着你暂时停止宇宙以调整事物。你不能在大规模架构中真正做到这一点,或者至少不能并且仍然拥有大规模架构。
我们还注意到,在过去几年中,人们对数据、运营数据与分析数据的双重用途有了更多的认识。作为架构师,我们长期以来一直试图解决的功能障碍之一是将单一机制用于截然不同的目的。所以我们试图创建关系数据库作为所有这些知识的唯一来源,但现在我们需要用它来做所有这些报告和分析。
问题是,这可以追溯到您在架构中遇到的基本问题,即您的数据库模式是整个架构中最密集的实现细节之一。你越是让实现细节泄漏到你的架构中,你的架构就会变得越脆弱。意思是,你在某个地方做了一个改变,它破坏了一大堆东西。
1
关系数据库
分布式事务架构
架构师观点
DDD领域驱动设计