Backend Development 9 min read

Evolution and Architecture of vivo Mall's Product System

From its 2017 v2.0 upgrade to a service‑oriented design, vivo Mall’s product system was split from the monolithic mall, progressively adding independent activity, flash‑sale, consignment, and inventory services while employing rate limiting, multi‑level caching, circuit breaking, and distributed transactions to ensure stability, high performance, and data consistency.

vivo Internet Technology
vivo Internet Technology
vivo Internet Technology
Evolution and Architecture of vivo Mall's Product System

This article details the evolution and architectural design of vivo Mall's product system, focusing on how the team addressed challenges in stability, performance, and data consistency as the system grew. The content is structured into four main sections: introduction, system evolution, challenges, and summary.

The introduction explains the motivation behind the v2.0 architecture upgrade, which began in 2017 to address issues in the monolithic v1.0 architecture, such as bloated modules, low development efficiency, performance bottlenecks, and maintenance difficulties. The product module, being central to the entire system, was identified as a key area for service-oriented transformation.

The system evolution section describes how the product module was separated from the mall to form an independent product system, gradually becoming a foundational service for various business lines. The article outlines the system's architecture and details the historical upgrades, including the separation of product activities and gifts, independent flash sale system, establishment of a consignment system, and inventory separation. Each upgrade is explained with its rationale and benefits.

The challenges section addresses three critical areas: stability, high performance, and data consistency. For stability, the article discusses strategies such as avoiding single-machine bottlenecks, implementing business rate limiting and degradation, setting reasonable timeout times, monitoring and alerting, and circuit breaking. For high performance, it covers multi-level caching, read-write separation, and interface rate limiting. The article also shares two solutions to common pitfalls: handling excessive Redis keys in product list queries and addressing hot data causing Redis single-machine bottlenecks. For data consistency, it explains the use of the Cache Aside Pattern for Redis and the adoption of distributed transaction components like Seata for cross-database operations.

The summary reiterates the main points of the article, emphasizing the importance of making the product system a foundational, single-responsibility service capable of providing high-performance product services. It also mentions that future articles will cover inventory system evolution and distributed transaction content.

Distributed Systemsperformance-optimizationSystem ArchitecturemicroservicesBackend Developmentdata consistencyDatabase OptimizationCaching Strategies
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.