I'm relatively new to using Salesforce Marketing Cloud and wondering if there is a best practice for synchronizing data from an external database to make it available in the Salesforce Marketing Cloud.
I'm using Salesforce Sales/Service Cloud and an external database that stores additional information related to Salesforce accounts (can be linked using the Id of the Contact which is also used as subscriber key). The Sales/Service Cloud is already integrated using Marketing Cloud Connect. So I only need to connect the external database to the Marketing Cloud and link it with the synchronized data from Sales/Service Cloud.
Using the REST API (https://code.exacttarget.com/apis-sdks/rest-api/v1/routes.html#putDataExtensionRowByKey) every change could be pushed to data extensions that are copies of the external database's tables. To connect the external data with Sales/Service Cloud data, a query activity could populate the joined data to another data extension. However, in my opinion there are some major downsides when using this approach: Failover mechanisms, etc. have to be implemented so the data stored in the external database and the data extensions in Salesforce Marketing Cloud don't ever diverge. Furthermore if the automation running the query activity is triggered on every change, there is a lot of data to be processed as there is no "Append or Update" functionality and an "Overwrite" would have to be used for the query activity. When using a scheduled automation instead, the data wouldn't be up to date all the time.