基于xstate实现携程金服业务流程动态化

简介

本文通过介绍携程在互联网金融服务领域如何快速高效解决合规落地问题,提出了一种基于xstate的工作流动态调整方案。这种方案适合所有需要在线流程升级的应用。包括金融,证券,电商,政务,物流等行业领域。

方案背景

随着互联网金融的日益壮大,传统银行与互联网公司合作寻求共赢成为一种常见的模式。携程作为在线旅游的领导者也主动顺应这一潮流,积极开拓了金融服务领域的业务。在具体应用中,某场景需要对用户资格进行在线审核。熟悉金融相关业务的开发人员应该知道,在线审核一般包含多个步骤与判断,是个比较复杂的流程。这些流程,步骤和判断都需要与一定国家的法律、规则和准则相一致,简称合规。当政策发生变化,系统也会必然随之调整以做到继续保持合规。传统的做法一般是通过代码来实现审核流程,升级的办法主要是修改代码,测试和重新发布。这种做法在携程这种量级的系统里无疑是极具挑战性的,具体表现在以下几个方面:

开发与维护难度大。传统的开发方式是用代码来实现合规,在合规逻辑本身比较复杂,条件判断复杂的情况下,通过读代码的方式来理解和修改系统非常低效。复杂代码往往非常难以理解和维护,修改老系统非常容易破坏正确逻辑或者引进新的bug,导致开发质量低下。

上线时间难以保证。新合规的出现是无法预测的,而某些新合规往往会规定较紧迫的上线时间。在开发工作安排的非常饱满,开发进度非常紧张的时候,为新合规上线划拨资源,安排进度从项目管理角度是上线很困难的事情。甚至曾经出现过虽然国家发布了新合规和规定了上线时间,但由于各个公司实在无法按时上线,最终国家不得不推迟上线时限的情况。

无法保证系统质量。现代互联网公司往往是大规模并行开发,有固定的发布节奏,并且一次发布多个功能同时上线是常态。这种情况下,新合规功能可能会与有缺陷的功能一同上线,当缺陷版本回退的时候,会导致合规功能一起回退,从而影响新合规的实际上线时间节点和效果。

简而言之,携程金服团队希望合规开发能降低成本,缩短周期;合规维护能做到快速理解,修改和验证现有系统;合规发布能精准,高效,影响面小,不可控干扰因素少;合格回退能独立实时,副作用小。理想情况下,最好能够做到不停机发布。

解决方案

金融团队的技术leader在评估各种方案时,也向携程框架部门寻求了技术支持。根据他们的需求,我向他们推荐了xstate。

xstate是一个基于状态机模型的开源框架,利用与IDE紧密结合的模型编辑器,用户可以用可视化的方式直观地开发模型。xstate编辑器的功能非常完备,可以灵活地构建任意的复杂模型,模型存储格式为XML。xstate引擎对运行环境无特殊要求,可以内嵌到任意容器或单独运行。为了适应各种使用场景,xstate引擎提供了灵活多样的模型数据读取方式,包括读取file,url,classpath甚至stream等。

阅读原文

你可能感兴趣的:(基于xstate实现携程金服业务流程动态化)