电商平台经常要上线各种营销活动来做商品促销。今天探讨下电商营销活动玩法的架构设计。

营销活动是特定时间段内上线的产品,生命期比较短,需要通过其他渠道来引流,比如首页弹窗,消息PUSH,媒体广告位。因此活动不是单一页面的集中输出,而是会在多个页面多个资源位上多点输出,非常像一条章鱼。根据营销活动的这个产品特点,可以用类似章鱼体形的架构来设计,如下图所示。

营销系统 架构 营销体系架构_架构模式

ActivityCode: 活动内核

活动内核是章鱼架构的头部,是活动玩法的控制中心和数据中心。内核的主要职责如下:

  • 内核只负责活动凭证的创建和读写
  • 校验活动资格,为满足活动资格的用户创建凭证
  • 通过凭证完成活动流程

ActivityVoucher: 活动凭证

活动凭证是用户参与活动的唯一数据实体,由活动内核负责读写。通过活动凭证可以实现活动各种玩法的控制:

  • 活动资格逻辑: 获得活动凭证代表有活动资格
  • 活动时间控制:通过凭证有效期实现
  • 活动限量控制:凭证限量限时发放
  • 活动流程:凭证的状态流转

活动凭证是内核和触点的通信载体。触点根据活动凭证决定是否输出,以及如何输出。

活动凭证适合选用NoSQL型存储,如Redis,HBase,MongoDB等。一方面,活动凭证只存参与活动用户的个体数据,没有与其他实体间的关联关系。另一方面,活动流程是一个漏斗模型,完成整个流程的用户通常占比很小,如用关系型表,必然是张稀疏表。而且对于大流量场景,采用关系型存储还要考虑分库分表,成本较高。

ActivityTentacles(活动触点)

活动触点是和用户交互的产品形态,根据活动凭证和触点位置,决定产品输出。触点通过调用内核提供的接口,完成活动流程。

微内核架构模式

章鱼架构本质上是微内核架构模式。微内核架构模式主要由两个架构组件:核心系统和插件模块。应用逻辑通过独立的插件模块与核心系统分离,提供扩展性,灵活性应用特性隔离和业务处理逻辑定制。

营销系统 架构 营销体系架构_营销系统 架构_02