← All articles
Salesforce · MuleSoft · Event-Driven Systems · Quick Reads

Salesforce CDC vs Platform Events: Which One Should You Use?

Salesforce Change Data Capture (CDC) and Platform Events both publish messages through Salesforce's event infrastructure, but they solve different integration problems.

A practical way to start is:

Need to know that Salesforce records changed?
    → Change Data Capture

Need to publish a purpose-built business event?
    → Platform Events

That distinction is more useful than choosing based only on connector configuration.

Change Data Capture

CDC publishes change notifications for supported Salesforce records when they are:

created
updated
deleted
undeleted

The event is generated from record activity in Salesforce.

A typical use case is keeping another system synchronized with Salesforce data.

Salesforce Account changes
        │
        ▼
     CDC event
        │
        ▼
     MuleSoft
        │
        ▼
 downstream customer system

You usually do not create a custom event-producing action in the business process just to tell consumers that a record changed.

Platform Events

Platform Events are explicit event contracts that represent something meaningful that occurred in a business process or system workflow.

Examples might be:

OrderSubmitted
CustomerOnboardingCompleted
InvoiceApproved
ProvisioningRequested

The producer intentionally publishes the event, and the event schema is designed around that business or integration contract.

Salesforce business process
          │
          ▼
     Platform Event
          │
          ▼
       MuleSoft
          │
          ├── downstream API
          ├── Kafka
          └── another application

The Core Difference

The simplest distinction is:

CDC
"this Salesforce record changed"

Platform Event
"this business/system event occurred"

Those statements can occasionally describe similar real-world situations, but the integration semantics are different.

Choose CDC for Data Synchronization

CDC is usually a strong fit when your requirement sounds like:

Keep another system aware of changes to Salesforce records.

Examples:

  • synchronize Account updates into a data platform;
  • propagate Contact changes to another application;
  • update downstream caches or operational stores;
  • replace frequent polling for supported objects;
  • react to create/update/delete activity on Salesforce records.

CDC naturally aligns with entity-change integration.

Choose Platform Events for Business Contracts

Platform Events are usually a better fit when your requirement sounds like:

Publish a deliberate event that other systems should react to.

Examples:

  • a quote was approved;
  • an onboarding workflow completed;
  • a fulfillment request was created;
  • a business milestone occurred;
  • Salesforce needs to issue a command-like integration signal to another system.

The event contract can contain fields chosen for the consumers rather than simply representing a record change.

Avoid Using CDC as a Business-Event Substitute

Suppose an integration needs to react when an opportunity reaches a particular business milestone.

You could consume every Opportunity CDC update and make MuleSoft inspect the changed fields and infer whether the milestone occurred.

That can work, but it may create unnecessary coupling:

Opportunity changed
      │
      ▼
consumer understands Salesforce fields
      │
      ▼
consumer infers business event

If the business concept is important and intentionally published, a Platform Event can make the contract clearer:

Business milestone occurs
      │
      ▼
MilestoneCompleted event

Consumers no longer have to infer business meaning from raw record changes.

Avoid Publishing Platform Events for Every Data Change

The reverse problem also occurs.

If the only requirement is to propagate Account field changes, creating a custom Platform Event for every update can duplicate functionality CDC already provides.

That adds event-maintenance logic and another schema without necessarily adding business meaning.

Use a purpose-built event when there is a purpose-built contract.

Payload Semantics Differ

CDC events describe Salesforce record changes and include change-event metadata.

Platform Event fields are explicitly designed by the event publisher.

That difference affects consumer design.

With CDC, MuleSoft often asks:

Which record changed?
Which fields changed?
What is the current or changed state?

With Platform Events, MuleSoft often asks:

What event occurred?
What contract did the producer promise?
What action should the consumer take?

Replay and Recovery Apply to Both

Both CDC and Platform Events participate in Salesforce's event-retention and replay model.

Salesforce currently documents event retention for 72 hours, and Replay IDs are opaque positions used for event-stream recovery rather than business identifiers.

For MuleSoft consumers, keep these concepts separate:

Replay ID
    = where consumption resumes

Business/Event identity
    = what logical work this message represents

Recovery state
    = what failed and still needs remediation

A stored Replay ID is not a replacement for idempotency or a durable Error Hospital.

What Happens After the Retention Window?

If a consumer is offline long enough that required events are no longer retained, replay alone cannot reconstruct every missed change.

For CDC, reconciliation can often query the authoritative Salesforce data and restore downstream state.

For Platform Events, the answer depends more heavily on the business semantics. If the event represented a historical fact that cannot be reconstructed from current record state, the architecture may need its own durable record of that work outside the event bus.

CDC Can Be State-Oriented

CDC frequently supports integrations where the final objective is:

make downstream system match Salesforce state

If an old CDC event becomes stale, re-fetching the current record may be safer than replaying an obsolete snapshot.

For example:

version 10 failed
version 11 succeeded

later replay version 10

Blindly applying the older state could overwrite something newer.

Version/change awareness and reconciliation matter.

Platform Events Can Be Fact-Oriented

A Platform Event may represent a historical business fact:

PaymentAuthorized
ShipmentRequested
ApprovalCompleted

If such an event fails downstream, replacing it with current Salesforce record state may not preserve the meaning of the original event.

That is why Platform Event recovery often needs stronger attention to stable event identity, idempotency, and durable recovery context.

What About Record-Triggered Automation?

A Salesforce record-triggered Flow or Apex logic can publish a Platform Event when a record transition represents a meaningful business event.

That lets you convert:

record-level state transition

into:

explicit event contract

The trade-off is additional producer logic and governance. Use it when that explicit business contract provides real value.

A Quick Decision Table

RequirementBetter starting point
Synchronize Salesforce record changesCDC
Replace polling for supported record changesCDC
Detect create/update/delete/undelete activityCDC
Publish a deliberate business eventPlatform Events
Design a consumer-oriented event schemaPlatform Events
Notify several systems of a business milestonePlatform Events
Reconstruct current downstream stateOften CDC + reconciliation
Preserve a historical business factOften Platform Event + durable recovery design

You Can Use Both

Large integration landscapes often need both patterns.

For example:

Account CDC
    → keep MDM/customer systems synchronized

CustomerOnboardingCompleted platform event
    → trigger provisioning and notifications

There is no need to standardize every event-driven integration on one mechanism.

Standardize the decision criteria instead.

Practical Rule

Choose CDC when record change itself is the integration signal.

Choose Platform Events when you need an explicit business or integration event contract.

If you find a consumer repeatedly interpreting low-level record changes to discover whether a business event happened, that is often a sign that a purpose-built Platform Event deserves consideration.

CONTINUE READING

Explore closely related architecture, integration and implementation topics.