Backend Development 14 min read

Design and Evolution of Vivo's Points Task System

Vivo’s Points Task System evolved from a simple configuration‑driven task model into a scalable, multi‑source behavior incentive platform that uses an AviatorScript engine, unified SDK, and three isolated services—event collection, computation, and task handling—to deliver configurable tasks, real‑time rewards, and flexible user notifications while ensuring stability and extensibility.

vivo Internet Technology
vivo Internet Technology
vivo Internet Technology
Design and Evolution of Vivo's Points Task System

This article, authored by the Vivo Internet Platform Product R&D team, introduces the development history and technical architecture of Vivo's points and task system, a core component of its member marketing platform.

What is a points system? It is a widely used user incentive mechanism (e.g., Taobao coins, JD beans) that connects users to the business, increases activity, and maintains loyalty. Vivo’s points system includes a Points Mall, Task Center, and Activity Center.

What is a task? Similar to game daily quests, tasks guide users to perform high‑value actions and reward them with points, thereby creating a positive feedback loop.

The design follows the Fogg Behavior Model , requiring motivation, ability, and a trigger to drive user actions.

Phase 1 – Exploration

• Business model analysis defined a task as “User A performs action B and receives reward C”. • Task cycles (new‑user, daily, monthly) and status tracking were identified. • Goal: fast configuration of tasks and recording of completion/reward status.

Implementation used a configuration‑driven design, but the logic layer still required heavy development effort.

Phase 2 – User‑Behavior Incentive System

Problems discovered: long cross‑project cycles and low operational efficiency. The solution introduced a unified behavior model, a behavior SDK for data collection, and experimental capabilities for A/B testing.

Key workflow: the app activates the SDK, which pulls behavior configs, filters and de‑duplicates events, reports them to the server, where user tags and experiments are evaluated, and the result is returned to the SDK for UI feedback (toast/snackbar).

Example: a user reads news, likes a comment, the SDK reports the event, the task is marked complete, and a snackbar prompts the user to claim points.

Phase 3 – Expanding Data Sources and Interaction Forms

Identified pain points: single data source and limited notification methods. The system was extended to support multiple data sources (event streams, MySQL, Kafka, RPC) and richer delivery (custom dialogs, message pass‑through).

Data collection layer now handles clustering, source management, metadata, preprocessing (using Aviator expression engine), normalization, and storage (MongoDB, TiDB).

Rule calculation layer processes events asynchronously and returns results to the task layer.

Expression Engine

AviatorScript was chosen for its lightweight, high‑performance Java bytecode compilation. Sample usage:

// Data cleaning filter
originEvent.pay_status == 1 && string.contains("11,12,13,14,15,16,92,93,95", originEvent.product_type + "")

// Rule calculation
let value = eventObject.value / 100;
let success = value >= 1;
return seq.map('success', success, 'data', value);

Task Layer

Manages task‑behavior mapping, task distribution, reward issuance, user notification, and task state.

Delivery Layer

Custom pop‑ups created via Vivo’s site‑building platform.

Message pass‑through via MQ for asynchronous consumption.

Overall System Architecture

The system is divided into three main services: Event Collection Service, Event Computation Service, and Task Service, each isolated for scalability and reliability.

Service Stability

Degradation mechanisms: rate limiting, circuit breaking.

Cluster isolation per business scenario.

Asynchronous execution of non‑core functions.

Monitoring includes CPU, logs, DB latency, message backlog, and behavior event chain tracing.

Future Directions

Platform extensibility for broader reward types.

Support for composite sequential behavior events.

Improved real‑time processing to reduce latency.

rule enginebackend architecturedata collectionbehavior SDKpoints systemtask engine
vivo Internet Technology
Written by

vivo Internet Technology

Sharing practical vivo Internet technology insights and salon events, plus the latest industry news and hot conferences.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.