Will change Data Capture eventually replace push topics/Streaming API salesforce?
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?
You should definitely read Event-Driven Architecture on the Architects site. I quote:
High-volume platform events and Change Data Capture (CDC) are the preferred mechanisms for publishing record and field changes that need to be consumed by other systems. Salesforce will continue to support PushTopics and generic events within current functional capabilities, but does not plan to make further investments in this technology. So, don't use Push Topics/streaming API salesforce or generic events in new work. And, as POZ said, consider the event bus as something new to learn about.