Reading the Data PM

You know what your data is named, not what it represents.

Reading the Data Reading the DataAdvanced

Architecting a Scalable Customer Data Pipeline

How product events, data warehouses, and marketing automation connect - and where the decision points are that a PM needs to own before handing off to engineering. If you were not present when the schema was designed, your marketing team is activating a dataset that does not reflect your product model.

A customer data pipeline is the sequence of systems that move user behavior from your product into the tools that act on it - and the decisions made at design time determine whether your marketing team can trust what they activate on.

This article is for product managers who have shipped at least one analytics integration and are now either inheriting an existing data architecture or participating in a rebuild. You need a working understanding of what events are and why they differ from database records. If you are evaluating a Customer Data Platform for the first time, start with the basics of event tracking before reading this.


The Architecture Without Jargon

Four layers. Every customer data pipeline - regardless of vendor or complexity - passes through the same sequence.

flowchart TD
    A[Events] --> B[Collection Layer]
    B --> C1[Managed CDP]
    B --> C2[Self-Hosted Pipeline]
    C1 --> D[Data Warehouse]
    C2 --> D
    D --> E1[Reverse ETL]
    D --> E2[Direct Connector]
    E1 --> F[Marketing Activation]
    E2 --> F

Layer 1: Events

An event is a timestamped record that something happened. A user opened the app. A user added an item to a cart. A user completed a payment. Events are not database rows - they are immutable logs of behavior, not state.

The critical design decision at this layer is the event schema: what is named, what properties are attached, and what the naming convention is. This is not a technical decision. It is a product decision that gets implemented by engineers.

Layer 2: Collection Layer

The collection layer receives events from your client surfaces - mobile app, web app, backend services - and routes them to downstream destinations. This is where a managed Customer Data Platform (such as Segment or Rudderstack) or a self-hosted pipeline (such as Kafka or a custom ingestion service) sits.

The collection layer determines data freshness. Batch pipelines introduce lag - sometimes minutes, sometimes hours. Streaming pipelines are near-real-time. If your marketing team needs to send a push notification within 60 seconds of a cart abandonment, batch will not work.

Layer 3: Warehouse

The warehouse (Snowflake, BigQuery, Redshift, ClickHouse) is where events land for storage, transformation, and querying. Raw events are rarely what analysts or marketing platforms consume directly - dbt or similar transformation tools clean, join, and model them into tables that answer business questions.

The warehouse is where divergent schemas from different teams become visible - and expensive. A mobile team that tracks item_added_to_cart and a web team that tracks add_to_cart are creating two incompatible records of the same behavior.

Layer 4: Marketing Activation

Activation is where data becomes action. Email platforms, push notification services, in-app messaging tools, and ad network audiences all consume data from either the collection layer directly or from the warehouse via a reverse ETL tool (such as Census or Hightouch).

The activation layer is why the entire architecture exists. And yet it is almost always the last layer to be discussed when the pipeline is being designed.


Managed Customer Data Platform vs. Warehouse-Native: The Real Tradeoff

Everyone says the choice depends on your "maturity." Most teams actually make the choice based on whichever vendor a previous engineer had already integrated before the PM joined.

Here is what the decision actually looks like when the numbers are on the table.

Dimension Managed Customer Data Platform Warehouse-Native Customer Data Platform
Implementation time 2–6 weeks (vendor SDKs, pre-built connectors) 3–6 months (data modeling, reverse ETL setup, dbt layer)
Engineer dependency Low initial; grows as destinations multiply High initial; stabilizes after data models are defined
Data freshness Near-real-time (streaming) to minutes Minutes to hours depending on warehouse sync cadence
Cost at scale Per-event pricing - grows linearly with volume Fixed infrastructure cost - grows slowly after initial setup
Schema ownership Vendor-enforced; migrations require vendor support Internal ownership; changes require internal engineering
Activation flexibility Limited to vendor-supported destinations Any destination reachable via SQL or API
Correctness guarantee Depends on how the SDK is implemented client-side Depends on how transformation models are written in the warehouse

The managed Customer Data Platform is faster to start and more expensive to scale. The warehouse-native approach is slower to start and cheaper at scale. Neither is correct in the abstract - the right answer is determined by activation requirements, which are a product decision that most PMs have not made explicit before the architecture conversation begins.


The Activation-First Principle

Here is what the architecture conversation almost never starts with: what does the marketing team need to do, at what latency, with what user properties, triggered by what events?

If the answer is "send a push notification within 90 seconds of a first purchase," the collection layer must be a streaming pipeline. If the answer is "sync a high-value segment to a paid ad network once per day," a warehouse-native approach with batch reverse ETL is sufficient and considerably cheaper.

The activation requirement determines the collection layer choice. The collection layer choice constrains the warehouse design. The warehouse design constrains what the marketing team can build. This is a product decision chain, and it starts with activation - not infrastructure.

Most teams build the pipeline first and discover the activation constraints later. This is why marketing teams routinely find that the data they need does not exist, is named differently than the event they expected, or is available but not queryable in the tool they are using.


Meesho: When the Schema Catches Up With You

Meesho, India's social commerce platform built for Tier 2 and Tier 3 markets, illustrates a pattern that repeats at scale across reseller-mediated commerce models.

At tens of millions of daily active users transacting through a reseller network, the per-event pricing on a managed Customer Data Platform becomes prohibitive. The decision to move toward a warehouse-native approach is straightforward on cost grounds.

What is not straightforward is what happens next: teams discover that their event schemas diverged silently over years of independent development. A mobile team and a web team that never coordinated naming conventions end up with two records of the same behavior - tracked under different event names, with different properties, accumulated across years of feature launches.

Neither schema is wrong in isolation. Both are wrong as a combined dataset used to answer questions about how users discover and purchase through resellers. The marketing activation team builds segments against one event stream without knowing that a meaningful share of traffic is tracked under a different name and is invisible to their queries.

The migration from managed CDP to warehouse-native does not stall on engineering complexity. It stalls because someone has to decide what the canonical event schema should be - which properties are required, which are optional, and which team owns the definition going forward. That is a product decision. In most cases, it was never made, because no one was in the room when both teams independently designed their tracking.


The Judgment Turn

The event naming convention is not a style guide decision. The identity resolution logic - which determines whether a user who signed up on mobile and purchased on web is the same person - is not an engineering heuristic. The definition of a user property called customer_tier or account_type is not a label that gets finalized in a pull request without a product owner.

These are product decisions embedded in engineering deliverables.

If you were not present in the conversation where those decisions were made, you do not know what your data actually represents. You know what it is named. That is not the same thing.

The marketing team activating on customer_type = 'premium' is operating on a definition that was either never written down, was written down by an engineer who guessed at the business logic, or was written down correctly two years ago and has since been silently modified by three separate feature launches.

This is the uncomfortable position: the data pipeline is not an engineering system that PMs hand off and then consume from. It is a product system that encodes your definitions of users, behaviors, and business states into a format that every downstream team operates on. When those definitions are wrong - or absent - every activation, every segment, every A/B test, and every attribution model built on top of them is operating on a fiction.

The question is not whether your pipeline is warehouse-native or managed. The question is whether you were in the room when the schema was designed - and if not, whether you are willing to spend the time to audit what is there before your marketing team ships another campaign against it.


Key Takeaways

  1. Every customer data pipeline passes through four layers: events, collection, warehouse, and activation. The product decisions happen at layer one, before any vendor is selected.
  2. The activation requirement - latency, destination, segment logic - determines the correct architecture. Architecture chosen before activation requirements are defined will require rebuilding.
  3. Managed Customer Data Platforms are faster to implement and more expensive at scale. Warehouse-native approaches require more engineering investment upfront and become cheaper as event volume grows.
  4. Schema divergence between teams is a product debt, not a technical debt. It accumulates silently and becomes visible only when activation breaks or when a migration forces reconciliation.
  5. Event names, identity resolution logic, and user property definitions are product decisions. If engineering owns them by default, no one owns them.

Related Articles

Train this · Reps

A marketing team complains that their behavioral segments are returning zero users despite confirmed product adoption. What is the most likely root cause?

Make the call in Reps and see how your reasoning holds up.

Make the call
Warm-up Reps

Did it land?

0 / 3 CORRECT
Three quick checks on the ideas above. Pick an answer and you will see why it is right or wrong. Consider it the warm-up before the real gym.
Q1
A marketing team complains that their behavioral segments are returning zero users despite confirmed product adoption. What is the most likely root cause?
Schema divergence between the event that fired in product and the event name the marketing platform queries is the most common cause of empty segments, no enrichment vendor can fix a naming mismatch.
Q2
When does a warehouse-native Customer Data Platform approach become the correct architectural choice over a managed Customer Data Platform?
Managed CDPs charge per event ingested. Once volume reaches a high enough threshold, the per-event cost model becomes prohibitive and warehouse-native becomes cheaper despite higher engineering investment.
Q3
Which of the following is a product decision, not an engineering decision, in a data pipeline design?
What 'customer_type' means, the business logic, the allowed values, and which team owns it, is a product decision. Engineering implements whatever definition the PM specifies.
AW

Anmoll Wadhwa

Senior PM · writing The PM Code

Field notes on product judgment: essays, teardowns, and reps for PMs who would rather think than template. A sharper take most days on LinkedIn.

More like this. Once a week.

Tactical essays on the calls that actually matter. In your inbox before they are on the feed.

LEARN·BUILD·COLLABORATE