DoorDash将其骑手入职系统重新设计成了一个统一、模块化的工作流程平台,这一设计旨在加速全球业务扩张并消除地区性差异带来的复杂性。新的架构用一种可组合、基于步骤的协调模型取代了原有的分散式旧系统,从而能够在不同市场提供一致性的入职体验,同时降低工程开发成本。

根据LinkedIn上一篇宣布这一举措的文章

随着DoorDash业务扩展到更多国家,骑手的入职流程变得越来越难以管理,且各地的入职流程也缺乏一致性。我们重新设计了这个入职系统,将其打造成了一个统一、灵活的平台,这样既能帮助我们更快地进入新市场,又能为全球范围内的骑手提供更加可靠、符合当地需求的入职体验。

此前,随着DoorDash在国际市场的扩张,入职流程是逐渐演变而来的,这导致了多个API版本的出现、针对不同国家的硬编码流程、重复的业务逻辑以及紧密耦合的依赖关系。要追踪申请者的进展,就需要协调不同的数据表,这使得运营风险增加,部署工作也变得更加复杂。每当有新市场加入时,额外的补丁又会进一步增加维护工作的难度。

为了解决这些问题,DoorDash将入职流程重新设计成了一个由可重用的模块组成的配置型工作流程引擎。每个模块都包含了自身的业务逻辑,包括验证规则、与供应商的集成方式、完成标准以及错误处理机制。中央协调系统会根据明确的工作流程定义来顺序执行这些模块,这样就可以通过配置来调整不同地区的具体操作流程,而无需修改代码。

统一化的骑手入职系统的高层架构图(来源:DoorDash官方博客文章

该平台引入了一个统一的状态管理系统,这个系统为申请者的进展情况提供了统一、准确的信息来源。各个模块会分别更新自己标准化的状态信息,比如“进行中”、“已完成”或“跳过”。工作流程引擎会根据这些状态信息来确定下一步该执行什么操作,从而简化了重试逻辑,并在允许的情况下实现安全的并行处理。

步骤模块的状态转换流程图(来源:DoorDash博客文章

2025年1月,DoorDash的工程师们首先将美国的入职流程迁移到了新的架构中,随后这一方案又推广到了澳大利亚、加拿大、波多黎各和新西兰。由于工作流程具有可组合性,且各个步骤模块也具备很高的重复使用价值,因此每次迁移所需要进行的额外开发工作都非常少,在实施过程中也没有出现任何功能退化或入职流程中断的情况。这种分阶段进行的迁移验证了新系统在不同监管环境和运营环境中的适用性。

该架构还支持复合步骤的设计,这意味着可以将多个具体的任务组合成一个逻辑单元。这种灵活性使得不同市场可以根据当地用户的体验需求或合规要求来调整入职流程,而无需改变底层的业务逻辑。各个独立团队可以负责开发特定的模块,并自主对其进行优化和改进,只要他们遵守工作流程层所规定的接口规范即可。

通过多年的实践,DoorDash总结出了几条重要的经验:尽早为全球范围内的应用进行设计、遵循基本的设计原则、投资于可重复使用的模块以及制定明确的数据交互规范,这些都有助于构建一个易于维护的架构。优先确保系统的向后兼容性并明确各模块的负责团队,也是保证迁移过程中各个市场都能顺利开展入职流程的重要措施。

这种重新设计的架构反映了整个行业正在朝着模块化、以工作流程为导向的方向发展——这样的架构将协调工作与执行逻辑分离开来。可组合的架构通常被用来降低系统各部分之间的耦合度,并帮助企业实现国际化扩张。DoorDash表示,未来的改进措施可能包括动态的工作流程配置、针对分阶段部署而设计的步骤版本管理机制,以及用于处理地区差异的操作工具,而这些都不需要通过代码更新来实现。

Comments are closed.