8X Flow 建模方法
1. 什么是 8X Flow 建模方法
8X Flow 建模方法是一种以业务为核心的建模方法,通过明确业务逻辑与领域逻辑的区别,将业务系统和领域系统分离,保证它们各自拥有不同的知识边界和弹性边界。8X Flow 强调在建模过程中完全围绕业务问题进行设计,避免以技术为出发点去定义业务问题,从而更高效、灵活地支持业务系统的变化和优化。
2. 业务逻辑与领域逻辑的区分
-
业务逻辑:涉及企业运作的流程、规则和行为,主要围绕具体的业务操作,如合同管理、订单处理、绩效考核等。业务逻辑负责连接用户、系统和数据,以实现业务目标。
-
领域逻辑:涉及领域内的核心概念、规则和行为,主要关注业务背后的本质,如库存管理中的库存调整规则、财务管理中的资金结算规则等。领域逻辑专注于稳定的业务规则和原则,不受具体业务流程变化的影响。
通过区分这两种逻辑,8X Flow 保证了业务系统和领域系统的边界清晰,各自独立运作但又相互配合,从而实现高效的弹性扩展和变化响应。
3. 业务上下文的建立
8X Flow 通过建立合同上下文、履约上下文和渠道上下文等,构建完整的业务模型:
-
合同上下文:涉及合同的创建、修改、取消等业务流程。合同上下文定义了业务系统的入口点,是与客户、供应商等外部实体交互的核心部分。
-
履约上下文:涉及合同履行的具体操作,包括订单处理、服务交付、付款确认等。履约上下文负责业务承诺的实际执行,并确保操作符合合同的规定。
-
渠道上下文:指在合同产生之前,通过不同渠道(如线上商城、线下门店、第三方平台)与客户交互的流程。渠道上下文为合同上下文提供业务来源,并影响后续的履约操作。
4. 绩效管理的建模
8X Flow 还支持将公司内部的绩效管理通过协议与履约的方式进行建模。传统的绩效管理往往与业务系统分离,难以统一管理和优化。而在 8X Flow 方法中,绩效管理可以看作一种内部协议,通过履约上下文实现对员工绩效的监控与评估,从而统一了业务与管理流程。
5. 以业务为核心的建模原则
8X Flow 强调“不要把技术当大聪明”,即在系统设计中,不应从技术角度去定义业务问题,而应回到业务本身,深入理解业务逻辑和变化点。这意味着系统架构的设计要紧密贴合业务需求,重点关注以下几点:
-
业务变化点识别:识别业务上下文中的变化点,如角色化的履约确认、不同渠道的业务规则等。这些变化点往往是业务增长和调整的核心驱动力。
-
低成本支持变化:通过合理的系统设计和上下文划分,降低系统应对业务变化的成本。设计时尽量采用松耦合的架构模式,使得业务逻辑和领域逻辑能够独立调整,不相互干扰。
6. 构建系统的天然边界
在 8X Flow 中,合同上下文、履约上下文和领域上下文作为系统天然的边界,这些边界定义了系统的职责和交互方式。通过明确边界,不同上下文中的逻辑可以复用,领域逻辑则作为支持业务逻辑的核心资源:
-
合同上下文:是与外部世界的接口,定义了系统如何接收和处理外部输入。
-
履约上下文:负责执行具体的业务操作,是业务逻辑实现的核心。
-
领域上下文:支撑履约上下文,提供稳定的业务规则和核心逻辑。
7. 架构设计以应对业务变化为核心
架构设计要以业务变化为中心,通过合理的上下文划分和弹性边界设计,应对复杂多变的业务场景。这包括:
-
降低耦合度:上下文之间通过清晰的接口进行交互,避免不必要的直接调用,减少模块之间的依赖。
-
提高复用性:将稳定的领域逻辑模块化,供不同业务模式复用,使得新业务模式可以快速搭建。
-
弹性扩展:针对业务量的增长或新业务的引入,通过异步处理、分布式架构等技术手段实现上下文的弹性扩展。
8. 示例:电子商务中的订单处理系统
背景:在电子商务平台上,客户下单后系统需要处理订单、确认支付、安排发货等操作。这些操作需要区分业务逻辑和领域逻辑,同时处理各种上下文中的变化点。
-
合同上下文:定义订单的创建,包括客户信息、商品选择、优惠应用等,是业务流程的起点。
-
履约上下文:涉及订单的处理和执行,如库存检查、支付确认、物流安排等。通过履约上下文,系统能够灵活调整每个订单的处理步骤。
-
领域上下文:包括库存管理、支付服务、物流调度等核心业务逻辑。这些逻辑相对稳定,不因订单处理流程变化而改变。
-
变化点支持:系统需要能够快速响应不同渠道的订单处理规则(如平台自营、第三方卖家等),并通过适应不同的履约方式(如快速发货、定时配送等)保持高效运营。
总结
8X Flow 建模方法从业务出发,强调上下文边界的清晰划分和逻辑的复用,通过合理的架构设计应对复杂多变的业务需求。它不仅提升了业务系统的灵活性,还通过降低系统的耦合度和优化流程设计,显著减少了应对业务变化的成本,为企业在竞争激烈的市场中提供了更为有力的技术支撑。
参考连接:https://huhao.dev/posts/2932e594/
https://github.com/behring/8x-flow-diagram/blob/main/README.md