
业务流架构师不是画流程图的岗位,而是把业务规则、组织协作、系统调用和异常补偿统一为可执行架构的人。训练目标有三个:能看懂业务、能定义流程、能落地代码。只懂 BPMN 不懂工程,流程无法上线;只懂代码不懂业务,编排会脱离现实。
第一层是业务建模:用事件风暴识别命令、事件、聚合与策略,区分核心域与支撑域。第二层是流程设计:掌握 BPMN、状态机、Saga、事件驱动,明确同步与异步边界。第三层是工程实现:幂等、重试、超时、补偿、人工任务、持久化检查点。第四层是治理度量:SLA、积压、失败率、单均成本、审计合规。训练必须案例驱动,让学员在真实订单、退款、审批、履约场景中反复建模与重构。
阶段一:建模。给定“退款审批”需求,学员输出事件表、状态图、异常清单。阶段二:编排。把状态图翻译为 DSL 或代码,定义网关、补偿和人工节点。阶段三:压测与故障注入。模拟第三方超时、重复回调、进程崩溃,验证幂等与恢复。阶段四:治理。接入日志、指标、链路追踪,建立评估集和回归机制。
以下 Python 骨架体现流程架构师必须掌握的核心:步骤、重试、补偿、审计。
from dataclasses import dataclass, field
from typing import Callable, Optional
import time
@dataclass
class Context:
biz_id: str
data: dict = field(default_factory=dict)
audit: list = field(default_factory=list)
@dataclass
class Step:
name: str
action: Callable[[Context], dict]
compensate: Optional[Callable[[Context], None]] = None
retries: int = 2
class Process:
def __init__(self, name: str, steps: list[Step]):
self.name = name
self.steps = steps
def run(self, ctx: Context):
done: list[Step] = []
try:
for step in self.steps:
for i in range(step.retries + 1):
try:
ctx.data.update(step.action(ctx) or {})
ctx.audit.append(f"{step.name}:ok")
done.append(step)
break
except Exception:
if i == step.retries:
raise
time.sleep(0.5 * (2 ** i)) # 指数退避
except Exception:
for step in reversed(done): # Saga 反向补偿
if step.compensate:
step.compensate(ctx)
ctx.audit.append(f"{step.name}:compensated")
raise
return ctx使用示例:
def reserve(ctx): return {"reserved": True}
def pay(ctx): return {"paid": True}
def cancel_reserve(ctx): ctx.data["reserved"] = False
process = Process("order", [
Step("reserve", reserve, cancel_reserve),
Step("pay", pay),
])
result = process.run(Context(biz_id="A1001"))
print(result.audit)生产中还要加入幂等键、持久化检查点和人工任务挂起。例如每个步骤执行前检查 biz_id + step.name 是否已完成,完成后写入数据库;重复回调直接返回历史结果。人工审批则写入工单表,等待回调后从检查点恢复。
合格者应能独立完成:一,画出业务事件与状态图;二,定义流程 DSL 与异常策略;三,编写可重入、可补偿的编排代码;四,设计监控与审计;五,用故障注入验证恢复能力。业务流架构师的训练终点不是“会画”,而是“敢上线、能回滚、可审计”。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。