How Youzan Built a Scalable Task Center: Architecture, Idempotency, and Dynamic Config
This article explains why a task center is essential for merchants, outlines its goals, and details the backend architecture—including atomic APIs, Apollo-driven dynamic configuration, idempotent control, workflow orchestration, caching, and asynchronous logging—while also sharing future enhancements.
Why Build a Task Center?
The task center aims to boost user activation, improve retention, increase repeat purchases and average order value, and enable referral growth by providing merchants with a visual task configuration UI and users with engaging, reward‑driven tasks.
System Goals
B‑end: a merchant‑visible task configuration portal.
C‑end: user task acquisition, asynchronous or synchronous completion, supporting timed and staged tasks.
Integration: quick visual onboarding with simple receipt handling.
Core system: extensible task addition with minimal changes to the main workflow.
Technical Solution
We extracted a B‑end configuration center and a C‑end task processing center from the existing business stack, making interfaces atomic and composable. Common utilities are packaged as JARs for rapid integration, and Apollo provides dynamic configuration that can be cached locally without redeploying applications.
Platform‑Merchant‑User Collaboration
The SaaS platform maintains three interconnected entities: the internal platform, merchants, and end users. Merchants configure tasks via a UI, the platform validates and deploys them, and users complete tasks, triggering reward distribution and logging.
Platform side: fast backend onboarding with approval workflow.
Merchant side: UI for task definition and reward settings.
Business side: unified task scheduling and reward issuance capabilities.
Core Technical Components
Idempotency Control
To prevent duplicate reward issuance, we support two storage modes: Redis (preferred) and MySQL. The component can be added via annotation with SpEL expressions, and Apollo pushes dynamic configuration. Rejection strategies include returning the same result, an idempotency code, or throwing an exception.
Workflow Orchestration (db+xml Engine)
Common task logic such as reward distribution is abstracted into a configurable workflow engine. Developers define processes in XML, enabling hot‑loaded templates, dynamic cache logic, and hotspot caching for high‑traffic promotions.
Dynamic Configuration Component
We combine JVM‑level delayed loading with Apollo to avoid frequent releases while allowing runtime configuration changes. This balances the unlimited capacity of file‑based configs with the length limits of Apollo switches.
Asynchronous Log Recording
Task completion events generate high‑volume logs. Instead of synchronous logging, we emit asynchronous log events to a dedicated logging system that provides collection, upload, visualization, and search capabilities.
Future Work
Productized operation UI for visual task management and deployment.
Extensible callback and configuration points to enable co‑development of workflows by internal and external developers.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Youzan Coder
Official Youzan tech channel, delivering technical insights and occasional daily updates from the Youzan tech team.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
