Unified Consumer Memory Platform for Personalization at Scale

doordash · E-commerce · 2026 · source Agentic: no · promotional bias: med · summary-only (no fetched source) · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Consumer memory for marketplace personalization

DoorDash needed a shared semantic consumer memory that could serve both traditional ML ranking and LLM-driven experiences across a multi-vertical marketplace, because engagement models and opaque embeddings could not express interpretable preferences.

Constraints:

Architecture

DoorDash built a unified consumer memory platform that converts behavioral signals into versioned natural-language memory blocks with LLMs, then encodes those blocks as dense embeddings and a heterogeneous context graph. The platform supports daily/weekly batch cadences, manifests, lineage, and downstream use by ranking/retrieval models and LLM-driven personalization experiences.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  behavioral_signal_stream["Behavioral signal stream"] --> llm_semantic_extraction["LLM semantic extraction"]
  llm_semantic_extraction --> versioned_memory_blocks["Versioned memory blocks"]
  versioned_memory_blocks --> dense_embedding_encoder["Dense embedding encoder"]
  versioned_memory_blocks --> heterogeneous_context_graph["Heterogeneous context graph"]
  versioned_memory_blocks --> memory_manifests["Memory manifests"]
  dense_embedding_encoder --> ml_ranking_models["ML ranking models"]
  heterogeneous_context_graph --> ml_ranking_models
  heterogeneous_context_graph --> llm_personalization_experiences["LLM personalization experiences"]
  memory_manifests --> ml_ranking_models
  memory_manifests --> llm_personalization_experiences
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Behavioral signal stream Provides orders, searches, browsing, support interactions, and explicit preferences. LLM semantic extraction
LLM semantic extraction Converts raw behavioral signals into natural-language memory blocks. Behavioral signal stream, Versioned memory blocks
Versioned memory blocks Store interpretable consumer preference memories. LLM semantic extraction, Dense embedding encoder, Heterogeneous context graph, Memory manifests
Dense embedding encoder Converts memory blocks into semantic vectors for retrieval and ranking. Versioned memory blocks, ML ranking models
Heterogeneous context graph Represents relational preference context for graph-style reasoning. Versioned memory blocks, ML ranking models, LLM personalization experiences
Memory manifests Track lineage, versions, and batch outputs for testing and rollback. Versioned memory blocks, ML ranking models, LLM personalization experiences
ML ranking models Use memory features in traditional recommendation and retrieval models. Dense embedding encoder, Heterogeneous context graph, Memory manifests
LLM personalization experiences Use natural-language memory context for generative personalization. Heterogeneous context graph, Memory manifests

Data flow

Raw consumer behavior such as orders, searches, browsing, support interactions, and explicit preferences is processed into memory blocks. Long-term memory captures durable preferences, in-session context captures current intent, and explicit context stores stated preferences. Recurrent session patterns can graduate into long-term memory. Memory blocks are embedded and represented in a graph for downstream ML and LLM consumers.

3 supporting quotes
“uses LLMs to systematically extract semantic understanding from behavioral signals (orders, searches, browsing)”summary, stated
“transforms them into structured memory blocks containing natural language descriptions of consumer preferences.”summary, stated
“These memory blocks are then encoded into multiple representations—dense embeddings for semantic similarity and a heterogeneous context graph for relational reasoning”summary, stated

Why this architecture

DoorDash built memory once and served it in multiple representations because ML rankers need tensors/graph features while LLM experiences need language-native preference context.

“a shared, semantic, language-native understanding of consumers that would work for both traditional ML systems”summary, stated
“This dual-use architecture ensures that semantic understanding of consumers—their dietary habits, brand preferences, price sensitivity, and shopping patterns—is extracted once”summary, stated

Models used: LLMs · dense embedding models · traditional ML ranking models

Scale

Alternatives considered (roads not taken)

Use engagement-only collaborative filtering

Rejected because: It misses semantic cross-category preferences.

“Collaborative filtering and engagement-based models excel at patterns like "users who bought X also bought Y" but struggle with semantic nuances.”summary, stated

Use opaque two-tower embeddings alone

Rejected because: They are not inspectable or interpretable by LLMs.

“Embedding-based user representations from two-tower models capture latent patterns effectively through dense vectors, but these representations are opaque”summary, stated

Let each surface independently infer consumer preferences

Rejected because: That creates redundant processing and inconsistent representations.

“It wasn't feasible for every surface and model to independently extract consumer understanding from raw behavioral data, creating redundant processing and inconsistent representations.”summary, stated

Patterns

agent-memory (consumer personalization)

DoorDash stores durable, in-session, and explicit consumer preferences as reusable memory.

“The memory system maintains three complementary memory types operating at different timescales and optimized for different purposes.”summary, stated

batch-offline-processing (memory refresh)

Memory extraction and representation updates operate on daily/weekly batch cadences.

“The platform operates at daily/weekly batch cadences with versioned components and manifests, enabling A/B testing, rollbacks, and lineage tracking while supporting use cases like personalized collections and enhanced ranking models that go beyond simple engagement patterns.”summary, stated

prompt-versioning (memory lineage)

Versioned components and manifests support A/B testing, rollbacks, and lineage.

“The platform operates at daily/weekly batch cadences with versioned components and manifests, enabling A/B testing, rollbacks, and lineage tracking while supporting use cases like personalized collections and enhanced ranking models that go beyond simple engagement patterns.”summary, stated

rag-retrieval (memory retrieval)

Dense memory embeddings support semantic retrieval and ranking features.

“These memory blocks are then encoded into multiple representations—dense embeddings for semantic similarity and a heterogeneous context graph for relational reasoning—that serve both traditional ML ranking/retrieval models and LLM-driven experiences.”summary, stated

Tradeoffs

Represent memory in multiple forms.

Chose Natural language blocks plus embeddings plus graph over One dense user vector.

Rationale: Different downstream systems need different forms of consumer understanding.

“These memory blocks are then encoded into multiple representations—dense embeddings for semantic similarity and a heterogeneous context graph”summary, stated

Use batch memory manifests.

Chose Versioned daily/weekly memory components over Unversioned live extraction for every surface.

Rationale: Batch manifests support testing, lineage, rollbacks, and consistent reuse.

“The platform operates at daily/weekly batch cadences with versioned components and manifests, enabling A/B testing, rollbacks, and lineage tracking while supporting use cases like personalized collections and enhanced ranking models that go beyond simple engagement patterns.”summary, stated

Gotchas (what bit them)

Opaque user embeddings cannot be used directly by LLMs.

Root cause: LLMs reason over language, not learned latent vectors.

Resolution: Create natural-language memory blocks alongside vector and graph representations.

“not interpretable by LLMs that reason in natural language rather than learned representations.”summary, stated

Session intent and long-term preference can conflict.

Root cause: Current behavior may override or supplement historical patterns.

Resolution: Separate long-term, in-session, and explicit memory layers with graduation rules.

“current behavior overrides or supplements historical patterns, providing signals about immediate intent that may differ from longer-term preferences.”summary, stated

Evaluation

The case describes evaluation through downstream personalization use cases, A/B testing, lineage, and enhanced ranking models rather than reporting final lift metrics in the excerpt.

Metrics: Daily/weekly batch cadence. · Three memory layers. · A/B testing and rollback support.

“supporting use cases like personalized collections and enhanced ranking models that go beyond simple engagement patterns.”summary, stated

Outcomes

The platform spans DoorDash's multi-vertical marketplace and operates on daily/weekly batch cadences.

“developed a unified consumer memory platform to address the limitations of purely engagement-based personalization models”summary, stated