Technical Overview and History of China’s 12306 Railway Ticketing System
The article provides a detailed, informal yet informative overview of the evolution, architecture, and massive scale challenges of China’s 12306 railway ticketing platform, tracing its roots from early Unix‑based systems to modern distributed backend solutions handling billions of requests during peak travel periods.
Enthusiastic users praise the 12306 system as one of the world’s strongest websites, noting its ability to handle massive traffic during China’s Spring Festival travel rush, where up to 800 million users may attempt to purchase tickets simultaneously.
"The 12306 system is real‑time!"
Early ticketing before computerization relied on manual reservation and “reserved‑ticket” policies, leading to rampant scalping. In the 1990s, the Harbin Railway Bureau developed China’s first nationwide ticket allocation system on SCO Unix using C, introducing a “抢票” (抢票) feature that let stations pre‑claim tickets.
By the early 2000s, the system migrated to a client‑server (CS) architecture with PB/VB front‑ends, Sybase databases, and Tuxedo middleware, deploying distributed instances at each railway bureau that synchronized with a central ticketing center via ADSL dial‑up links.
This architecture persisted for over a decade, eventually evolving into the centralized 12306 platform, which consists of a three‑tier distributed system: the Ministry of Railways layer, the railway bureau layer, and the station layer, communicating through data packets similar to banking systems.
The platform’s strengths stem from three main factors: extremely complex SKU management, intricate cross‑regional product interactions, and enormous access volume.
"Only under China’s unique administrative and population‑registry conditions could such a fully centralized ticketing system be built; it would be impossible in most other countries."
Unlike many modern ticketing solutions that rely heavily on relational databases and transaction processing, the original systems were built on file‑based messaging due to the lack of mature DBMS, influencing the design choices of the modern 12306 backend.
Key figures such as Dan Xinghua from the China Railway Research Institute are credited as the leading architects of the current system.
Sales of tickets involve extremely complex SKU combinations.
Products and nationwide channels interfere with each other.
Traffic volume is massive.
Overall, the 12306 system exemplifies a large‑scale, high‑concurrency backend solution that integrates real‑time ticket reservation, inventory deduction, and nationwide data centralization.
Architecture Digest
Focusing on Java backend development, covering application architecture from top-tier internet companies (high availability, high performance, high stability), big data, machine learning, Java architecture, and other popular fields.
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.