06 / 方向

系统之间的数据交换

把 CRM、仓库、银行、展示页和外部服务连起来,使数据不必录入两次。

给同一张卡片存在于多套程序里的公司。

数据交换

系统

01邮箱
02仓库
03账务
04展示页

来自

邮箱

去向

仓库

痕迹

日志

01

由什么构成

系统里包含什么

  1. 01

    字段以谁为准

    每条事实只有一个主人:价格在账务里,订单状态在展示页里,联系人在 CRM 里。其余系统只读取。

    • 会传出去的字段清单
    • 从哪里写入,谁只读取
    • 如果两个来源改了同一个字段,怎么办
  2. 02

    渠道

    API、Webhook 或队列,按系统能怎样交出数据来选,而不是怎样更时髦。

    • 哪些自行到达
    • 哪些必须按时间表去取
    • 高峰时的量有多大
  3. 03

    故障

    没送达的数据包不会无声消失。它会等待并再试一次。

    • 间隔后重试
    • 已经不能再重试的数据包
    • 如果队列停住,就发信号
  4. 04

    日志

    按订单号或卡片号能看到:已发出、已送达、已拒绝,以及原因。

    • 每次尝试都有记录
    • 按编号搜索
    • 谁可以重新发起数据交换
  5. 05

    不连接什么

    多余的连接会制造差异。没人读的字段不带上。

    • 仍保持手工的系统
    • 不参与交换的字段
    • 如何在备份上检查数据交换,先于生产数据

做什么

  1. 01一张图:每个字段以谁为准
  2. 02API、Webhook 和队列
  3. 03接入账务、银行和展示页
  4. 04故障时重试,而不是让数据包无声丢失
  5. 05能看出什么没送达的日志

如何推进

  1. 01系统检查
  2. 02数据交换示意图
  3. 03构建
  4. 04在真实数据上走查
  5. 05给团队的说明

用什么

  • REST
  • GraphQL
  • Node.js
  • Python
  • PostgreSQL

工期参考

一次数据交换从一周起。几套系统且数据有冲突,从一个月起。

完成后

事实只录入一次,并到达等着它的地方。

通常以后再做的

三个系统里同一字段的双向编辑,以及「五年历史迁移」,会在当前数据已经能正常交换之后单独来做。