Big Data 14 min read

Sun Dial: 58.com’s General‑Purpose AB Testing Platform – Architecture, Features, and Real‑Time Data Processing

The Sun Dial platform is a universal A/B testing system built for 58.com that supports single‑layer and multi‑layer experiments, provides uniform traffic splitting, real‑time OLAP analytics with Druid, and offers a web interface for easy configuration, enabling data‑driven product optimization across multiple business lines.

58 Tech
58 Tech
58 Tech
Sun Dial: 58.com’s General‑Purpose AB Testing Platform – Architecture, Features, and Real‑Time Data Processing

58.com, China’s largest classified information website, created the Sun Dial (日晷) platform to enable flexible, low‑cost, and efficient A/B testing across all its business lines, allowing product, technology, and decision makers to compare versions and choose the optimal one based on experimental data.

What is A/B testing? It is a method that compares two or more product variants by randomly assigning a small traffic sample to each version, estimating overall performance, and deciding which version yields better user experience, clicks, or conversions.

How to conduct A/B testing? During the same time window, a control group sees the original version while an experiment group sees the optimized version; statistical analysis of key metrics determines whether to release the new version.

Core functions of Sun Dial include support for single‑layer and multi‑layer experiments, orthogonal traffic allocation, a web UI for configuration and real‑time/history data viewing, and a Druid‑based real‑time OLAP engine for multidimensional analysis.

Key characteristics:

Low cost – user‑friendly interface and simple API calls.

Flexible experiments – choose single‑layer or multi‑layer designs.

Scientific traffic splitting – random, uniform, and verifiable.

Data‑driven decisions – real‑time and historical multidimensional metrics.

Single‑layer experiments allocate 100% exclusive traffic to one experiment, suitable for UI updates, feature rollouts, or product tweaks where isolated comparison is needed.

Multi‑layer experiments replicate traffic across several layers (e.g., recall, ranking, rule, display) allowing independent testing of each layer while using the same user requests; this is especially useful for recommendation systems with hierarchical processing.

Integration – after creating an experiment in the Sun Dial web UI, a unique experiment ID is generated; business services can obtain traffic allocation via HTTP/HTTPS or RPC Java interfaces.

Architecture

Overall architecture consists of three layers:

Storage layer – stores experiment configurations, logs, and metric data.

Logic layer – includes the Sun Dial HTTP service, Druid for real‑time data processing, Tranquility for feeding logs to Druid, and ABTest RPC service for traffic routing.

Access layer – provides UI for experiment management and RPC endpoints for direct traffic splitting.

The traffic‑splitting model follows Google’s overlapping experiment framework, ensuring orthogonal, random, and stable bucket assignment based on a hash of UID + EXPID (and LAYERID for multi‑layer experiments).

Experiment workflow

Product owners configure experiments (single‑ or multi‑layer) via the Sun Dial web UI.

User requests are routed to a traffic bucket according to the splitting algorithm.

Client‑side logs are collected in real time and fed to Druid.

Product owners view real‑time or offline metrics to evaluate each variant.

Data statistics

Two analysis modes are supported:

Offline analysis – Kylin‑based point‑of‑interest data, Hive tables populated from Flume‑uploaded logs.

Real‑time analysis – Druid OLAP engine processes Kafka‑streamed logs, offering sub‑second multidimensional queries (TopN, GroupBy, time‑series).

Real‑time processing pipeline: client SDK emits logs → Kafka → Tranquility → Druid (segment creation) → query service for dashboards.

Summary

Sun Dial provides a unified AB testing solution that supports both single‑layer and multi‑layer experiments, delivers uniform traffic splitting, and offers low‑latency, multidimensional analytics via Druid, enabling data‑driven product decisions across 58.com’s many services (used in second‑hand cars, job listings, recommendations, etc., handling 4.5 billion daily requests and over 200 experiments).

Current limitations include limited vertical dimension support, incomplete real‑time multi‑dimensional metrics, and inflexible time‑range selection for data visualisation, which are slated for future improvement.

Big Datareal-time analyticsA/B Testingexperiment platformDruidTraffic Splitting
58 Tech
Written by

58 Tech

Official tech channel of 58, a platform for tech innovation, sharing, and communication.

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.