:解密「零售」系列(二):产品架构( 二 )
我们以天猫的交易页面来示意说明:
文章图片
文章图片
看起来像不像一页合同 , 正翘首等待着用户提交订单那一刻完成签字画押 。每项合同条款的规则就是产品架构要定义的 , 而每一个元素的具体可选的枚举值是由合同履约方来定义 , 那么一旦用户觉得此合同条款及内容可以接受 , 就会按下提交订单完成合同的签署 。
文章图片
文章图片
(1)条款注册框架
合同的每一项条款背后都是一个复杂的应用系统来提供服务 , 比如配送时间服务 , 就是一个单独的系统来维护 , 其可以在交易无感知情况下 , 更新其可以提供的配送服务 。交易引擎只是提供条款服务方可以自定义合同条款及履约方法的一套条款框架自运行机制 。
(2)合同模板引擎
用来根据用户的选择来调取条款服务方加载对应的条款内容 。任意店铺根据所有可选合同条款及内容自选需要多少供用户选择 。那么当用户购买了此店铺的商品且开始结算的时候 , 交易引擎就会根据店铺已选择的模板内容来调取相关的应用系统来加载合同具体内容展示给用户 。
(3)引擎灵活扩展
由于业务发展需求变化快 , 交易引擎需要更加高效的支持 , 那么必须做到所有的数据交互要做到最小粒度 , 并提供扩展点供让业务自定义数据来影响相关履约流程 。如SKU维度入参和作为通道将自定义参数透传 。
3. 订单引擎
交易引擎是草拟合同 , 而订单则是双方白纸黑字签约 , 乙方要按照合同为用户来履约 。那么系统究竟是如何来为用户履约的呢?
在整个流程中需多个系统精密协作来完成一个订单履约 。大型电商大都采用微服务架构 , 恰好消息中间件成了解决微服务之间交互问题的重要组件 , 如应用耦合、异步通知、流量削锋等问题 , 最终实现高性能、高可用、可伸缩、一致性的产品架构 。
(1)订单数据分发
各个系统都在嗷嗷待哺 , 等着订单数据来触发其业务流转 , 这是订单系统核心工作之一 。随着订单在主干道和分支业务系统之间交互流转 , 其会影响订单的流转速度和方向 , 而每次的交互都可能产生新的数据 , 那么保证任意时刻数据一致性是至关重要的 。
分布式系统几乎不可能每一个时刻完全保证数据一致性 , 所以需要建立一个数据使用白皮书来规范数据的交互和使用 。
1)主数据机制
任何提供服务的系统都要维护其边界内核心数据的准确性 , 即主数据 。其他系统的这部分数据需来源于主数据 , 尤其是强依赖的数据 , 无论什么情况都首先需以主数据为准 , 甚至要通过反查来确认数据准确性 。
主数据的数据来源也不是完全可以自己闭环 , 也会依赖其他系统的数据上收 , 所以其必然也存在数据时间差 。
2)过程数据机制
典型的是订单状态数据 , 其状态是在流转变化的 , 由订单生成到订单完成之间会经历大大小小的十多个状态 , 而状态数据由于是异步更新的 。那么利用消息机制进行广播 , 相关系统监听这部分消息来触发其业务逻辑 。如到了订单到了支付完成状态其主数据会发出支付完成消息 , 生产系统会监听并消费到此消息来触发其拆单拣货打包配送等操作 。
基于订单状态的变化而广播消息是订单数据分发的核心机制之一 , 另外一部分是关键业务数据或个性化业务特殊触发的消息 。
3)结果数据机制
订单号是典型的结果数据 , 无特殊情况是不能被修改的 。结果数据通常是可以信赖的 , 但随着业务发展 , 系统中会有各种错误而需要数据修复 , 这可能会导致结果数据被修改 。
推荐阅读
- [火科技]iPhone12系列又有消息,但我真的不想等了!
- 『颜色』7号色未发先火nova7系列再次引领2020年潮流色
- ##荣耀30“全芯”换壳版,华为Nova7系列全爆料,麒麟990被抛弃
- 「」一代神机!荣耀 9X 系列国内销量超 1000 万台
- 『IT168』一代神机!荣耀 9X 系列国内销量超 1000 万台
- IT168网■7号色未发先火nova7系列再次引领2020年潮流色
- 『像素』荣耀潮流情报局:揭秘荣耀30系列预热视频背后的故事
- :高端定制,从此不同,TruAudio(臻傲) B23系列
- 「」自称影像旗舰,荣耀30系列的底气从何而来?
- []坐实全球拍照第一!华为P40系列用户满意度爆棚
