Backend Development 27 min read

Baidu Contract Advertising Platform: Microservices Architecture Evolution and Best Practices

The article examines Baidu's Contract Advertising Platform, detailing its shift from a monolithic, siloed design to a DDD‑driven microservices architecture using COLA, CQRS, and layered governance, and shares best practices for handling complex B2B advertising scenarios, service iteration, and evolving business needs.

Baidu Geek Talk
Baidu Geek Talk
Baidu Geek Talk
Baidu Contract Advertising Platform: Microservices Architecture Evolution and Best Practices

This article explores the technical challenges and architectural evolution of B-end (B2B) business systems, using Baidu's Contract Advertising Platform as a case study. The author examines how the platform transitioned from a monolithic architecture to microservices, addressing complex business scenarios involving hundreds of advertising and delivery types.

Contract Advertising Concept: Unlike real-time bidding advertising, contract advertising pre-negotiates advertising prices. The delivery process consists of four steps: inquiry → order placement → delivery → settlement. This model is more suitable for brand display advertising and involves heavier pre-delivery业务流程 compared to bidding advertising.

Business Development Phases: The platform went through three stages: 1) Rapid growth period (2011-2018) with independent delivery platforms for each product line; 2) Integration phase (2019+) seeking product consolidation and process unification through the Tianqi Platform; 3) Complex marketing scenario support (2021+) enabling integrated sales of multiple advertising products under one contract.

Architecture Evolution: The 1.0 monolithic architecture was a "chimney-style" structure where each product line operated independently, leading to information silos. The 2.0 microservices architecture adopted Domain-Driven Design (DDD) principles, dividing the system into four layers: Business Frontend, Business Middle Platform, Technical Components (PaaS), and Infrastructure (IaaS).

Technical Implementation:

Module Structure: Using COLA architecture with DDD, CQRS, and dependency inversion principles. Modules are organized by domain first, then by function.

Service Governance: Focuses on three aspects: availability (performance optimization, self-healing), observability (business entity lifecycle tracking), and anti-corruption (preventing architecture decay).

Service Iteration: Emphasizes forward compatibility, automation testing, and service mocking capabilities to achieve service autonomy and isolation.

Key Insights: The biggest technical challenge in B-end systems is managing business complexity. A good business architecture should improve delivery efficiency, operations efficiency, and evolution efficiency. The author concludes that no architecture is perfect—only one that evolves with actual business needs.

backend developmentDomain-Driven Designevent-drivenservice governancearchitecture evolutionMicroservices ArchitectureBaiduB-end SystemsContract AdvertisingCQRS Pattern
Baidu Geek Talk
Written by

Baidu Geek Talk

Follow us to discover more Baidu tech insights.

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.