Comparison

Platform Events vs Change Data Capture.

Same event bus, different questions: events you publish versus changes the platform emits for you. How to pick the right stream - and why the subscriber you'll need is the actual engineering project.

Two different questions

Platform Events and Change Data Capture ride the same pipes (the Pub/Sub API, the event bus, a ~72-hour replay buffer) but answer different questions. Platform Events are messages you define and publish - from Apex, Flow, or the API - for app-to-app signalling: "order approved", "sync requested". Change Data Capture is the platform telling you a record changed - automatically, for every create, update, delete, and undelete on the objects you enable, with the changed fields listed. If your goal is "react to Salesforce data changing", CDC is the one that requires no publishing code at all.

Side by side

Platform EventsChange Data Capture
What it carriesA custom event schema you designRecord changes: object, change type, changed fields, record data
Who publishesYou - Apex, Flow, or API calls, counted against publishing allocationsThe platform, automatically, when records change
Effort to emitDefine the event, add publish code/automation everywhere a change mattersTick the object in Setup → Change Data Capture
Blind spotsChanges made by paths that forget to publish (data loader, API edits, other packages)None for enabled objects - every DML lands on the stream
Best forBusiness-level signals and cross-app messagingData integration, sync, audit, cache invalidation, real-time downstream reactions

They're complementary - plenty of orgs use both. The comparison is about which stream answers your question, not which is better.

Either way, the subscriber is the hard part

Whichever event type you choose, consuming it means the same infrastructure: a long-lived gRPC subscription over HTTP/2, Avro schema resolution, replay-id checkpointing so a restart resumes instead of rewinding, reconnect and backoff logic tuned to the Pub/Sub API's quirks, and monitoring so you notice when the stream dies silently. That subscriber - not the event definition - is where the engineering time goes. (We wrote up the details in the build-vs-buy breakdown.)

SFHooks runs that subscriber for Change Data Capture and hands you the result as signed JSON webhooks: at-least-once delivery, retries with a dead-letter queue, and per-event observability. We don't currently forward custom Platform Events - if that's what your architecture needs, talk to us about where it's headed.

Frequently asked

Should I use Platform Events or Change Data Capture for data sync?

Change Data Capture. CDC events are emitted automatically for every create, update, delete, and undelete on enabled objects - including changes from the data loader, API edits, and other packages that custom publish code tends to miss. Platform Events are the right tool when you're signalling a business event you define yourself.

Does SFHooks support Platform Events?

SFHooks subscribes to Change Data Capture and delivers record-change events as signed webhooks. Custom Platform Event forwarding isn't part of the product today - contact us if your use case needs it.

What is the replay window for Salesforce events?

The event bus retains events for about 72 hours. A subscriber that's down longer than that loses the ability to replay what it missed - one reason a managed, monitored subscriber matters. SFHooks checkpoints its position continuously and records a visible gap incident if a stream is ever down past the buffer.