SYSTEM Cited by 1 source
Instacart Campaigns Engine¶
What it is¶
The Campaigns Engine is the shared service inside Instacart's marketing-automation platform that turns a campaign launch into a stream of per-customer events. It is shared across Instacart Marketplace and Storefront Pro — Instacart's first-party and multi-tenant retailer surfaces, respectively.
(Source: sources/2026-05-14-instacart-scaling-personalized-marketing-for-multi-tenant-commerce-platforms)
Responsibilities¶
When a campaign is launched, the Campaigns Engine:
- Evaluates the audience — determines which customers match the campaign's targeting criteria.
- Assigns experiment variants — buckets each matched customer into the appropriate variant for A/B and multi-variate testing.
- Generates offers — synthesizes any associated promotional or personalization content for the customer.
- Emits one event per customer to the streaming platform — the per-user event carries the data that downstream personalization + delivery stages need.
Verbatim: "Once a campaign is launched, the Campaigns Engine handles audience evaluation and personalization setup. It determines which customers match the target audience, assigns each customer to an experiment variant, generates any associated offers, and emits one event per customer to our streaming platform."
Reuse across Marketplace and Storefront Pro¶
A load-bearing architectural decision: "Because this engine is already used across both Instacart Marketplace and Storefront, we can reuse proven targeting and experimentation logic instead of creating separate systems for each business." The same audience-evaluation + experimentation logic that targets Marketplace consumers also targets per-retailer cohorts on Storefront Pro — the multi-tenancy lives downstream (in the CRM Service + per-retailer workspace), not in the Campaigns Engine.
Per-customer event fan-out → upstream of rebatching¶
The Campaigns Engine's per-customer event-emission shape is what creates the rebatching pressure described in the 2026-05-14 source: "Instacart's Campaigns Engine emits one event per user after audience evaluation and personalization setup. Left as-is, that would require the CRM Service to process users one at a time, creating unnecessary network overhead and placing avoidable pressure on downstream systems."
The downstream stream consumer rebatches per-customer events into groups of up to 50 to amortize the third-party send-API overhead — see patterns/stream-rebatch-for-downstream-batch-api.
Streaming substrate¶
The 2026-05-14 source refers only to "our streaming platform" without naming it. Treat as substrate-agnostic for now — the post leaves Kafka / Kinesis / in-house unspecified. What is named is the delivery semantics: "at-least-once delivery semantics in the streaming layer" — see concepts/at-least-once-delivery for the consumer-side implications.
Caveats¶
- The experimentation plane (allocation, sticky-bucket, post-hoc analysis) is not described in the 2026-05-14 source — only that the Campaigns Engine "assigns each customer to an experiment variant."
- Audience-evaluation substrate (rule engine? ML model? feature store?) is not described.
- Throughput / latency numbers for the engine are not disclosed.
Seen in¶
- sources/2026-05-14-instacart-scaling-personalized-marketing-for-multi-tenant-commerce-platforms — first wiki disclosure. Audience evaluation, experiment- variant assignment, offer generation, and per-customer event emission as the upstream of Instacart's multi-tenant marketing pipeline.