I need to notify an external system component about changes in Salesforce data. I am confused by the fact that there exist two seemingly competing solutions in Salesforce for that. Both look very similar with some noteworthy differences:
PushTopics
with Notification via Streaming API
- Declare Data condition with Metadata
- Relaxed limits and no costs involved
- Only listen via CometD client. No triggers.
Change Data Capture
as a type of Platform Event
- Can't listen for selective data changes (yet)
- Very restricted limits and high costs
- Listen to via Apex Triggers
So what I am asking is:
- What is Salesforce.com plan regarding those concepts? Will Platform Events replace Streaming channels and will Change Data Capture replace PushTopics?
- How did you decide in such cases in the past? What did you use? And why?