交付与所有权
为什么不建议让主系统与提成小账长期双向联动?
提成小账的核心诉求是独立核算和保密,一旦和主系统做长期双向联动,两边的字段口径、调整时点、补单逻辑会逐步漂移,回头追溯哪条数据"为准"会非常头疼。滚水科技通常建议把这条边界设计成单向:主系统是事实源,小账只读取并按自己的规则做版本化计算。
为什么不建议双向?我们在多个企业管理系统项目里都遇到过类似情况:
- 主系统里订单状态会反复变(退款、改价、拆单、补单),如果小账每次都跟着回写一遍,提成会被反复刷新,财务对账时根本看不清究竟以哪一版为准。
- 双向联动会让权限边界很难守住。提成数据本来只给少数人看,一旦回写到主系统的某些字段,权限模型马上变复杂,开发和测试成本都会涨。
- 排查问题时两边都可能改了对方的数据,事故还原难度极高,运维很被动。
我们一般推荐的做法是:
- 主系统单向推送事实数据:订单、回款、客户归属等基础事实,按 T+1 或事件推送到小账。
- 小账内部做版本化计算:每次提成核算都生成快照,附上当时的规则版本、数据切片和操作人,方便事后回查。
- 调整走流程,不走联动:提成需要回到主系统的情况(比如调岗、特殊奖励),通过工单或审批走人工确认,留下纸面记录,不依赖技术联动。
- 保留对账接口:两边定期对账,发现差异立刻定位,而不是默认两边永远一致。
这种结构有个额外好处:以后小账需要换团队维护、换部署环境,甚至换一套规则引擎,主系统都不用动,风险被限制在一个边界内。我们在做佣金、分销、绩效类系统时基本都用这种模式,长期看维护成本会低很多。