Redesigning JD's C‑End Invoice System: Architecture Upgrade, Performance Optimizations, and Future Roadmap

The article details JD's transition from a fragmented C‑end invoice service to a unified Invoice Center, describing the original user‑experience and architectural flaws, the DDD‑based layered redesign, performance‑boosting data and file‑handling strategies, achieved operational gains, and the planned next‑year initiatives.

JD Retail Technology
JD Retail Technology
JD Retail Technology
Redesigning JD's C‑End Invoice System: Architecture Upgrade, Performance Optimizations, and Future Roadmap

JD's retail invoicing is a critical component of the transaction flow, originally built with scattered C‑end services that suffered from poor user experience, duplicated core services, weak multi‑channel support, and stability issues as business volume grew.

The early system required users to navigate four separate entry points for invoice functions, leading to high operational costs and frequent support queries. Architecturally, the "silo" design caused high coupling, duplicated code, and performance bottlenecks, especially when handling large‑scale PDF generation and memory‑intensive file processing.

In 2020 JD launched the unified Invoice Center, adopting a Domain‑Driven Design (DDD) approach and a layered architecture consisting of a User Interface layer, Application layer, Domain layer, and Infrastructure layer. This separation isolates front‑end business packages from reusable middle‑platform capabilities, enabling faster delivery of new features.

Key redesign steps include business modeling with small‑iteration design, unified business identity management, inversion of control (API → SPI) for extensible extension points, and the use of the Matrix framework to isolate and register business extension packages at runtime.

To address performance constraints, JD built a billion‑scale structured data service (JED) employing sharding, asynchronous message‑driven preprocessing, and data retention policies to reduce storage costs and stabilize database I/O. File‑handling optimizations moved image conversion to an asynchronous backend, introduced image compression with Google Thumbnailator, limited PDF‑to‑image conversion to the first page, and tuned JVM and Docker memory settings.

After the upgrade, invoice‑related customer inquiries dropped 71% year‑over‑year, configuration‑driven demand now accounts for ~25% of requests, and delivery cycles for invoice detail page features were cut by half, significantly lowering development effort.

Looking ahead, JD plans to expand the platform with a B‑PaaS model for shared domain extensions and to leverage accumulated user and business data for analytics, alerts, and market‑demand discovery.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

DDDdata storageinvoice system
JD Retail Technology
Written by

JD Retail Technology

Official platform of JD Retail Technology, delivering insightful R&D news and a deep look into the lives and work of technologists.

0 followers
Reader feedback

How this landed with the community

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.