一、背景
很多业务系统,或者Saas平台,需要在通用功能上进行定制功能的开发。
1.1 举例说明:
为了简化场景,我们假设你在开发一个Sass模式的电商平台。
1.2 需要实现如下功能:
A公司在下单时,需要发送短信通知;
B公司下单时,需要发送邮件通知;
C公司则是啥都不用干;
1.3 重点:
未来的接入公司,可能在下单时需要处理其他逻辑,比如主动扣减总金额,发起远程调用(SAP接口)。
每个公司的逻辑也不是一成不变的,A公司可能1个月后,需要发送邮件,和短信。
很明显,这种极其灵活的定制化需求,只通过代码,基本是无法满足。据我所知,很多公司都是通过每次修改代码,然后重新发布程序来解决。这种方式给代码带来了脆弱性,发布过程也影响用户体验,也可能带来bug,不是一种好的处理方式。
二、思考
从本质上来看,我们主要是为了应对零散的特殊功能。
是不是有一种方式,让我们能将这些零散的小需求拆分成一个个独立的执行器,或者叫执行节点?然后通过配置的形式,将这些执行节点进行,传递参数,编排执行流程,来组合成一个定制化的功能呢?而且最好是这种配置能够动态地刷新,不需要服务重启。
答案是有的。
目前有很多这种流程编排的框架,使用流程引擎自动化自行也可以达到同样的目的。但是流程引擎过重。
专业人士在网上查了一下,发现LiteFlow比较适合这种场景:对应的网站是:https://liteflow.yomahub.com/
网友评论