Redesigning Pinterest’s Ad Serving Systems with Zero Downtime (part 2)
AdMixer, a re-architected ad serving system, prioritizes extensibility, separation of concerns, safe-by-design implementation, and development velocity. The Apex graph execution framework enables modularity and simplified deprecation, while the write-once data model ensures data integrity and thread safety. Mohawk's Thrift data structures were replaced with immutable Java types to prevent data mutation issues. The migration to AdMixer involved three milestones: abstract feature expansion, parallel operation, and correctness verification. Value-based validation, metric-based validation, and live A/B experiments were used to ensure accuracy without impacting production traffic. AdMixer significantly improves maintainability, scalability, and correctness, enabling future enhancements and ensuring reliable ad delivery.