按灯系统在转转的实践

开发 前端
按灯系统是转转落地一套用户反向驱动的机制,会为平台建立一个正向循环体系,提升平台购物体验,让更多的用户喜欢转转。

1 背景

按灯机制来源于丰田-生产模式,基于其“建立立即暂停制度以解决问题,从一开始就重视品质管理的文化”的生产原则。在丰田生产线上,一线操作工人一旦发现任何异常,有权按下按钮,直接停止整个流水线,让问题暴露出来,马上解决。

2012年,美国电商巨头亚马逊将丰田的按灯机制引入到客服系统中。为了解决客户投诉问题,一旦有超过两名客户投诉同一产品或者营销规则的同一个问题时,无论产品、营销规则多么火爆,客服专员都可以直接按下红灯键,下架产品或者营销规则,直到问题解决才会重新上架。

图片

2022年,转转为进一步提升品质管理,在公司组织内落地一套用户反向驱动的机制即按灯机制,前期聚焦在如何把用户的声音(尤其是客诉)穿透到公司业务方做针对性改善,最终实现公司组织具备实现用户第一的机制保障。

2 系统设计

转转引入按灯机制的交互流程图如下:

图片

从流程上看,按灯相关流程放在业务系统中也可以实现。

2.1 为什么要单独开发按灯系统?

转转体系内存在多个与品质有关系的直接系统,如果各业务系统都自主实现按灯逻辑的话,主要的弊端有:

  1. 资源浪费;
  2. 业务系统与按灯相关其他业务系统耦合;
  3. 按灯数据格式无法保证一致,数据分析起来较困难;

根据以上问题,将业务系统相关按灯动作抽象出来,由按灯系统统一收拢,按灯系统的主要功能如下:

  1. 发起按灯;
  2. 按灯单据的处理;
  3. 同步申诉信息;
  4. 发送执行命令;
  5. 跟踪按灯结果;

2.2 系统边界如何划分?

按灯系统既是承接上游发起按灯又是对下游系统发送执行命令的载体,那么按灯系统与上下游系统的边界划分则是系统设计的关键因素。

图片

将整个流程相关系统分为四大模块,如图:

图片

模块

职责

业务模块

  • 过滤或汇总业务数据;

按灯模块

  • 核心实现按灯单据的流转;

申诉模块

  • 提供申诉能力,回传申诉结果;

执行模块

  • 执行按灯命令,回传执行结果;

问题

为什么申诉、执行模块没有放在按灯模块中?

答案

申诉信息的展示需要依托业务系统推送给用户。例如:商户查看按灯信息需要通过商户管理平台。不同的业务会有不同的申诉场景,所以申诉模块由业务系统自身实现即可,按灯只需提供申诉的数据。

执行模块如:质检系统、商户管理系统等。这些系统本来就控制商户的质检能力和供货能力,按灯系统无需重复实现限制逻辑,只需要给对应系统发送命令,执行系统识别命令后执行相应限制逻辑即可。

3 系统实现

3.1 流程实现技术选型

根据第二部分系统设计,按灯系统主流程即为按灯单据的流转,流程实现技术选型是系统实现技术方案的重中之重,它决定了系统的复杂度、系统运行性能以及后续的维护成本。

常见的流程逻辑实现主要有状态机和责任链两种处理方式,两种处理方式对比如下表格:

技术选型

优点

缺点

状态机

状态驱动运转,易扩展

逻辑重,配置理解成本高

责任链

代码类配置链路,清晰易懂

链路长的话,性能会低

两种模式虽然都是处理链式请求,但不同的是:状态机是通过状态切换促使不同的状态处理类去处理请求,而责任链模式是在动作执行完成后直接传递给下一个处理类继续执行。

按灯系统划分为流程节点如下图:

图片

在按灯的场景中,按灯单也有多个状态,但实际执行并不复杂,按灯整体链路长度适中,结合当前的场景和后续规划,最终选择了更轻便的责任链模式来实现按灯单据的流转。

3.2 按灯流程实现

流程执行器抽象类:

  • next() : 设置下一个执行器;
  • execute(): 当前执行器处理逻辑;
  • doNext(): 触发下一个执行器;

public abstract class AbstractAndonTicketProcessService {


protected AbstractAndonTicketProcessService next;


protected abstract void next();


protected AndonProcessResult doNext(String logStr, AndonProcessContext context) {
if (Objects.isNull(this.next)) {
return AndonProcessResult.buildSuccess("执行成功");
}
return this.next.execute(logStr,context);
}

public abstract AndonProcessResult execute(String logStr, AndonProcessContext context);

}

流程器的触发有四个场景:

  1. 创建按灯单;
  2. 申诉结果回传;
  3. 处罚指令执行结果回传;
  4. 恢复指令执行结果回传;

将流程器按功能模块区分开,基于场景需求,选择不同的模块作为起点直接触发,使代码复用性更高。

3.3 按灯策略实现

按灯策略:对按灯源场景配置一组要执行的按灯指令以及按灯指令下发的时机。每一个按灯源有且只有一个按灯策略,不同的业务可以根据指令和时机的不同组合,实现按灯流程。

图片

  • 按灯源:触发按灯的场景
  • 按灯对象:被按灯的对象
  • 申诉能力:是否需要申诉
  • 按灯指令:执行处罚措施的类型
  • 罚款指令
  • 学习指令:指定按灯对象去学习系统学习对应课程
  • 限制商户能力指令:不允许商户上架、质检商品等
  • 下发时机:指令下发执行系统的时机
  • 立即下发:创建按灯单时立即触发
  • 申诉失败:等待申诉结果且失败时触发
  • 到达整改期限:指定指令在期限内没有完成,则触发

问题

创建按灯单据时是怎样匹配按灯策略的?

按灯策略的更新对单据逻辑影响是怎样的?

答案

查询该按灯场景下配置的按灯策略,根据按灯策略配置的按灯指令类型及下发时机生成对应按灯单和按灯指令。

更新策略采用模板方式,更新后会产生新的模板。待此按灯源下个按灯单据匹配时,会取最新版本进行关联。

4 应用场景

在转转平台,商户服务评级是通过平台多维度考核商家服务能力,以平台机制和平台运营策略正向引导商家的服务能力、质检能力和履约能力的提升。对于商家在商品、订单、售后等服务上存在的问题,比如商品质量不达标、超时发货、售后时效不达标等其他问题都可以作为按灯的数据来源,各业务按照自己业务规则灵活配置,超过阈值触发按灯系统创建按灯单,执行在按灯系统配置的流程。下图为商户服务评级按灯流程:

图片

5 总结

按灯系统是转转落地一套用户反向驱动的机制,会为平台建立一个正向循环体系,提升平台购物体验,让更多的用户喜欢转转。

责任编辑:武晓燕 来源: 转转技术
相关推荐

2022-10-28 09:15:02

2022-10-28 08:31:43

2022-11-07 14:45:26

转转价格DDD

2023-06-07 08:32:32

引擎技术while

2023-04-19 13:18:41

动态线程池平台

2023-08-24 08:11:39

断路器监控报警

2024-10-16 21:49:24

2024-09-11 19:36:24

2023-03-29 08:33:03

仓储自动化系统

2024-09-19 22:22:41

多任务学习

2023-11-01 07:44:29

转转Flutter业务

2023-12-27 19:12:42

OLAP自助分析

2023-03-02 08:54:32

2023-07-12 08:33:34

引擎LiteFlow编排

2023-03-02 08:32:41

2024-08-08 07:13:36

2023-02-08 09:42:30

策略方式容量

2022-12-15 08:35:01

用户画像平台

2024-06-06 08:18:42

回收业务

2023-09-14 08:34:28

linux架构参数
点赞
收藏

51CTO技术栈公众号