Skip to main content

Salesforce Data 360 Data Model: DSO vs DLO vs DMO, Normalization & Cardinality Explained

๐Ÿ’ฌ In plain words: Salesforce Data 360 processes data through a three-stage pipeline:
  • Data Source Object (DSO): The raw landing zone auto-created when a stream connects.
  • Data Lake Object (DLO): Stored, structured, and normalized data within the lake.
  • Data Model Object (DMO): The canonical, standardized business object used for segmentation, insights, and activation.
Mapping always flows upward: DLO → DMO. Configure your relationship cardinality accurately (for example, one customer to many purchases), or your identity resolution rules will break.
⚡ 1-Minute Summary
  • The Object Progression: Source Data → DSO (raw stream representation) → DLO (normalized storage) → DMO (canonical consumption model).
  • Normalization vs. Denormalization: Normalize early at the DLO layer for data integrity and storage efficiency; denormalize late at the DMO layer for rapid query performance.
  • Downstream Rule: Calculated Insights, audience segments, and Agentforce grounding read exclusively from mapped DMOs, never directly from raw DLOs or DSOs.
๐Ÿ“Œ Real-World Architecture Example:

A point-of-sale (POS) terminal sends a transaction payload: { "txn_id": "TXN-88", "cust_num": "C-1023", "amount": 4500 }.

  • Ingest (DSO): Raw stream captures the payload verbatim without modification.
  • Store (DLO): Data is typed, cleaned, and stored in the normalized POS_Transactions_DLO table.
  • Harmonize (DMO): The DLO maps to the standard SalesOrder DMO, joined via foreign key to the Individual DMO with a 1:N (one-to-many) relationship.

The Three-Stage Data Progression: DSO → DLO → DMO

Salesforce Data 360 relies on a deliberate object lifecycle to separate raw ingestion from analytical consumption:

  • 1. Data Source Object (DSO): Automatically generated when setting up a Data Stream. It acts as the raw schema contract representing incoming records from external sources.
  • 2. Data Lake Object (DLO): Physical tables in the underlying lake storage. Ingested records flow from the DSO into the DLO, where data types are enforced and storage is organized into a normalized structure.
  • 3. Data Model Object (DMO): The unified, canonical layer built upon the standard Cloud Information Model (CIM). Administrators map fields from DLOs into DMOs during the Harmonization phase.
  • Golden Rule of Mapping: Field mapping is unidirectional—always from DLO → DMO. Downstream tools like Segment Canvas, Calculated Insights, and activation targets consume only DMOs.
DATA OBJECT PROGRESSION PIPELINE
Source Payload ──► DSO (Raw stream contract created at ingestion)
                   └──► DLO (Normalized lake object for storage integrity)
                        └──► [Harmonization Mapping]
                             └──► DMO (Canonical business model for queries)

ARCHITECTURAL PRINCIPLE:
- Normalize at DLO  ──► Eliminates duplicate records, ensures storage integrity
- Denormalize at DMO ─► Flattens attributes, maximizes real-time read speed

Normalization vs. Denormalization & Key Relationships

Enterprise data modeling balances data integrity against query performance by leveraging two complementary structural models:

  • Normalized Layer (DLO): Divides data across discrete, specialized relational tables. This eliminates storage redundancy, safeguards transactional integrity, and scales write workloads efficiently.
  • Denormalized Layer (DMO): Consolidates related fields and attributes into broader, unified tables. This minimizes expensive relational joins during real-time audience queries and calculated metrics.
  • Primary Keys (PK): Uniquely identify individual rows within a DLO or DMO. If an external system lacks a natural primary key, Data 360 can generate one using composite field formulas (e.g., SourceSystem + "_" + CustomerId + "_" + Email) or auto-generated keys during stream setup.
  • Foreign Keys (FK) & Cardinality: Child tables reference parent primary keys. You must establish explicit relationship cardinalities (1:1, 1:N, or N:N) to enable the identity engine and query graph to traverse related tables accurately.
  • Standard vs. Custom DMOs: Always map to standard Salesforce DMOs (such as Individual, ContactPointEmail, ContactPointPhone, or Account) first. Extend standard DMOs with custom fields when necessary, reserving custom DMOs for distinct business domain entities.
๐Ÿง  Object Pipeline Mnemonic: 'DSO → DLO → DMO'. DSO receives the raw feed, DLO provides normalized storage, and DMO provides the query-ready canonical model. Always map low (DLO) to high (DMO).
⚠️ Cardinality Trap: If you misconfigure relationship cardinality—such as defining an Order-to-Customer relationship as 1:1 instead of 1:N—Identity Resolution will overwrite existing transaction data and corrupt audience segmentation queries.

๐Ÿงญ 360 Card: DSO, DLO, & DMO Architecture

  • Core Rule: Raw data streams create DSOs, persist into DLOs, and map up to standard DMOs. Downstream segmentation reads only DMOs.
  • Key Architectural Gain: A predictable data pipeline ensures that troubleshooting missing fields always follows the same three verification checkpoints: DSO stream status, DLO persistence, and DMO field mapping.
  • Schema Complexity: Ingestion requires defining data types and primary key structures across three layers before data is actionable.
  • Field Consistency: Field data types must match precisely between the DLO source field and the target DMO destination attribute (e.g., Text to Text, Number to Number).
  • Direct Source Anti-Pattern: Bypassing the canonical model to point analytics directly at source schemas creates tight coupling and requires rebuilding downstream queries for every new ingestion channel.

Technical Deep Dive: Questions & Architecture Scenarios

Q: Walk through what happens to data structurally from the moment a data stream lands until a segment can query it.
๐ŸŽฏ Core Rule: Incoming data lands in a DSO, persists into a normalized DLO, and is mapped to a canonical DMO. Audience segments query only DMOs.

Step-by-Step Architectural Flow:

  • 1. Ingestion via DSO: Creating a Data Stream instantiates a Data Source Object (DSO) that mirrors the schema of the source connection.
  • 2. Storage in DLO: Records transition from the DSO into physical Data Lake Objects (DLOs), structuring data for normalized lake storage.
  • 3. Harmonization via DMO Mapping: Administrators map DLO fields into canonical Data Model Objects (DMOs) like Individual or SalesOrder, establishing primary and foreign key relationships.
  • 4. Downstream Activation: Audience Segment builders, Calculated Insights, and Agentforce actions execute their query plans against the denormalized DMO layer.
Scenario 1: A legacy source feed contains no unique primary key. How does Data 360 resolve keys and establish relationships?

Solution Architecture:

  • Formula Key Construction: Use ingestion transform formulas to concatenate stable source fields (such as SourceSystem + "_" + AccountId + "_" + Email) into a deterministic unique identifier.
  • Auto-Generated Keys: Enable Data 360's built-in key generation during stream setup to produce unique surrogate IDs automatically.
  • Foreign Key Binding: Map the generated surrogate key as the primary key on the parent DMO and reference it from related child DMO foreign key fields.
  • Data Integrity Impact: Correctly defined composite keys prevent profile splitting and eliminate accidental record overwrites during identity resolution.
Scenario 2: Why are DLOs designed to be normalized while DMOs are typically denormalized?

Architectural Rationale:

  • DLO Normalization for Write Performance: DLOs handle high-volume write operations across streaming and batch ingestion. Normalizing tables eliminates data redundancy, guarantees transactional consistency, and reduces storage overhead.
  • DMO Denormalization for Query Performance: DMOs serve real-time analytical workloads, audience queries, and conversational AI lookups. Denormalizing attributes into broader objects minimizes complex multi-table SQL joins, delivering sub-second response times.