Instacart engineers described a redesign of its personalized marketing system to support hundreds of retail banners across its commerce platform using a configuration-driven multi-tenant architecture. The system enables retailers to run personalized campaigns without requiring separate per-tenant implementations, replacing earlier retailer-specific campaign systems.
Instacart reported 99.9% delivery success rate across retailers, and template updates propagate from configuration changes to production environments in under a minute due to the separation between configuration and execution layers with this redesign.
Storefront Pro sits on top of Instacart Marketplace, which provides the core commerce infrastructure powering retailer-facing commerce experiences. As adoption of Storefront Pro increased across hundreds of retail banners, campaign logic for definition, targeting, and execution was implemented separately for each retailer, which increased operational complexity and required repeated engineering effort to replicate similar functionality across tenants. Coordinating changes across retailers also became increasingly difficult due to divergent implementations.
To address this, Instacart introduced a centralized marketing platform built on shared commerce infrastructure. The platform consolidates campaign execution into a shared system while representing tenant-specific behavior through structured configuration rather than code. This enables a single execution model to support multiple retailers while preserving controlled variation within defined platform boundaries.
The architecture follows a multi-tenant model in which a shared campaign engine processes definitions across all retailers. Each retailer defines campaign behavior through a structured configuration that is evaluated at runtime by the execution layer. Campaign capabilities are deployed once and made available across all Storefront Pro retailers without per-tenant integration changes, reducing duplication while maintaining controlled extensibility.

Multi-tenant campaign execution model with configuration-driven personalization (Source: Instacart Blog Post)
A key design constraint is balancing standardization with flexibility. The shared multi-tenant platform reduces operational complexity, while configuration-based extensibility provides controlled mechanisms for tenant-specific behavior within a unified execution model. Tenant isolation is enforced at both data and execution layers to maintain separation between retailers operating on the shared system.
The architecture separates campaign configuration, audience evaluation, message generation, and delivery into distinct processing stages. This modular separation enables independent evolution of each component without requiring full system redesigns when individual capabilities change, improving long-term maintainability of the system.
The platform supports iterative improvements in campaign behavior using runtime signals. One area under evaluation is the use of early campaign performance data to adjust ongoing executions, including comparing variant performance during active campaigns and adjusting message elements such as subject lines or creative variations based on observed engagement signals.
The system also supports experimentation with automated content generation workflows, including generating subject lines aligned with retailer brand constraints, suggesting copy variations based on prior campaign performance, and evaluating potential improvements before campaign launch. These capabilities operate as advisory components rather than replacing marketer decision-making.

Campaign lifecycle and personalization execution flow in a shared marketing platform (Source: Instacart Blog Post)
The event-driven architecture abstracts delivery channels behind a unified execution pipeline, enabling support for additional messaging channels beyond existing configurations. This design also allows future capabilities such as coordinated messaging across email, push notifications, and SMS, along with optimization of message timing based on user-level engagement patterns.
By shifting from retailer-specific implementations to a shared configuration-driven multi-tenant model, Instacart reduces duplication, improves operational consistency, and enables faster iteration across its marketing ecosystem while preserving controlled tenant-level customization.