根据我司活动场景抽象出不用的活动玩法,沉淀成功能组件。活动中台部分在逻辑上分成了基础服务、通用能力、玩法编排层三层。
- 基础服务层聚焦于基础服务,无需考虑业务的复杂性而制定多种规则,不会随着业务和前台产品的调整发生变化,基础服务层对一致性要求较高,需要具备可溯源能力,基础服务层不会对外开放。
- 通用能力层则专注于业务的抽象,将通用逻辑汇聚到一起,通用能力是不断演进的,随着业务的复杂变的不断的厚重,能力不断的壮大,最终把活动生态里面的能力都呈现出来。
- 玩法编排层主要是对通用能力的组合在一起对外提供服务,通过编排可以控制各个独立的通用能力之间的关联逻辑,使其专注于自身的领域内逻辑,很好的进行了模块间的解耦。将一些独立的系统串联到一起,满足不同的玩法需求。通过其灵活性可以编排出各式各样的玩法逻辑。如果没有编排引擎,那么模块间的关联关系就必须通过上层业务层编写代码实现。
基础服务
1.物品系统主要包含道具、资产组成。为了统一化管理,在其上次抽出了聚合层,用于聚合其他团队的道具和资产、屏蔽技术细节、对外提供统一服务。目前已经接入的外部服务有:比心币、星钻、钻石、优惠券、直播或语音道具、装扮类等50多种资产类型。对于外部资产一致性保障、对外部资产发放支持自动失败重试机制,对于外部资产扣除异常支持自动退款。大大降低了用户客诉及人工介入排查成本
2.事件总线
整个活动系统数据中心,对各个系统进行有效的解耦。事件总线汇聚了内部的各个领域的事件以及外部系统的消息,然后按需分发给不同的系统,起到承上启下作用
通用能力
目前抽象了大部分通用玩法,包括如新活动接入、抽奖、b端抽奖、兑换、发奖、报名、组队、交换、弹窗、装备系统、答题、签到、任务、邀请、竞猜、榜单&榜单挂载&榜单发奖、实物物流等等。
编排引擎
编排引擎由一个个 node 节点构成,节点间通过链路串联成了树形结构,通过 node 节点的编排,编织成复杂的业务逻辑。