交易中台核心能力实现:以下单页渲染为例
引言
上一篇讲了交易中台的由来和作用,交易中台就是将变与不变发挥到极致的软件架构。将不变的部分固化在中台,变的部分开放出去提供给各个业务线自己定制。
本篇讲交易中台具体是如何实现这种能力的。以下单页渲染举例,当用户点击购买的时候会进入一个确认支付的页面,这个页面就是下单页。
以某海外电商为例,观察这个页面会发现展示这些数据:
跨境物流方式
配送时效信息
商品信息
国内物流方式
跨境段运费
退货权益
包邮信息
支付金额
环节总结
将下单页的数据获取过程拆解,可以抽象出若干个标准环节:
第一个环节:基础数据准备
调用商品服务获取SKU信息、价格、库存状态,这是所有业务线都需要的公共能力。
第二个环节:物流信息计算
根据收货地址和商品属性,计算可用的配送方式和时效。跨境和国内的物流逻辑在此分叉。
第三个环节:费用计算
计算运费、税费、优惠抵扣后的最终支付金额。不同业务线的计费规则差异较大。
第四个环节:权益信息获取
查询用户可用的退货权益、会员权益等增值服务信息。
第五个环节:数据组装输出
将前面环节的数据按前端要求的格式组装,返回给下单页渲染。
这五个环节中,第一和第五个环节相对固定,中间三个环节业务差异大,需要开放定制能力。
拓展点设计
拓展点是中台开放给业务线的定制入口,设计时需要回答三个问题:
1.在哪里开放
每个环节的前后都可以设置拓展点。以费用计算环节为例:
环节前拓展点:业务线可以预处理参数,比如跨境业务需要先转换币种
环节中拓展点:替换或增强计算逻辑,比如跨境业务需要叠加关税计算
环节后拓展点:对计算结果做二次加工,比如添加跨境专属的费用说明文案
2.开放什么能力
拓展点分为两类:
增强型:在中台能力基础上追加逻辑,不影响主流程
替换型:完全覆盖中台默认实现,业务线全权负责
3.如何保证稳定
每个拓展点设置超时时间和降级策略。如果业务线的拓展逻辑执行失败,系统自动降级到中台默认行为,保证主流程不被阻断。
拓展点实现方式
技术层面,拓展点通过SPI机制实现。
接口定义
中台定义标准接口,规定入参和出参的数据结构。以物流计算拓展点为例:
接口名称:LogisticsExtPoint
输入:商品信息、收货地址、用户标识
输出:可用物流方式列表、运费、时效
业务线实现
各业务线开发自己的实现类,打成jar包部署到中台指定的位置。跨境业务线的实现会包含海关清关时间的计算,国内业务线则不需要。
动态加载
中台通过业务身份标识,在运行时动态选择对应的实现类。一次请求进来,先解析出是哪个业务线,再加载该业务线注册的拓展点实现。
隔离执行
每个业务线的拓展点代码在独立的类加载器中运行,互不影响。某个业务线的代码出问题,不会拖垮其他业务线。
中台和行业的协作开发方式
中台团队和业务线团队的分工边界要清晰。
中台团队职责
维护核心流程和公共能力,定义拓展点规范,提供开发工具和调试环境。当多个业务线有共同诉求时,评估后沉淀到中台。
业务线团队职责
基于中台框架开发本业务线的差异化逻辑,所有定制代码通过拓展点接入,不能直接修改中台代码。
协作流程
业务线提出需求
双方评估是公共能力还是差异化能力
公共能力由中台团队开发,差异化能力由业务线团队在拓展点中实现
业务线代码走独立的发布流程,可以按自己的节奏迭代
代码仓库管理
中台代码和业务线代码分开管理。业务线只能看到中台暴露的接口定义,看不到内部实现细节。这种隔离既保护了中台的稳定性,也降低了业务线的理解成本。
流程编排引擎
流程编排引擎是串联环节和拓展点的核心组件,该编排引擎由中台定义和管理。
引擎的核心能力
它负责三件事:
1.定义流程由哪些环节组成,环节之间的执行顺序
2.管理每个环节上挂载的拓展点
3.控制运行时的执行逻辑,包括并行、串行、条件分支
流程配置示例
总结
交易中台通过环节抽象、拓展点设计、流程编排引擎三个核心能力,实现了标准化与个性化的平衡。
中台固化的是流程骨架和公共能力,开放的是每个环节的定制入口。业务线通过拓展点实现自己的差异化逻辑,既能快速响应业务需求,又不会破坏中台的稳定性。
这套机制背后是一个朴素的设计原则:把不变的东西做厚,把变化的东西做薄。中台越稳定,业务线越灵活。
https://mp.weixin.qq.com/s/5eXOPyqEv6F-1WvpPoKSZQ