Heroku – acquired by Salesforce.com in 2010 – has just introduced its first built-in integration service for the two cloud platforms. This bi-directional data synchronization between Heroku Postgres and the Salesforce (Oracle) database is positioned as a way to connect mobile, consumer facing applications hosted in Heroku with business systems running in Salesforce.
While Heroku and Force.com are extremely different application development environments – Heroku is for custom-built, scalable web applications that use open source frameworks and add-on application services, while Salesforce offers a point-and-click application designer with a propriety programming language for code extensions – Salesforce positions them as complementary. Until recently, Heroku developers who wanted to integrate with Salesforce could only do so via an API or command line interface. That changed in November when Heroku announced a forthcoming integration product. Last week, Heroku took the wraps off Salesforce1 Heroku Connect and announced it in a blog post.
This new Heroku product is a synchronization service, conceptually similar to Dropbox or iCloud, that synchronizes data between a Salesforce deployment and a Heroku Postgres database. By bringing together the data layers of the Force.com and Heroku platforms--and thus allowing the same data to be seamlessly reflected in each cloud’s native database--you can use the capabilities of each platform together in a single application, without having to translate or otherwise integrate between them.
In an interview with TechCrunch, the Salesforce VP of Marketing Scott Holden explained that customers demanded tighter integration and increased visibility into the apps running in each environment.
Holden explained that companies today are trying to create apps to interact with customers, but without having insight into what happens when they do. “They are spinning up apps without hooks into business,” Holden says.
What these products do is provide the connections to enterprise analytics and business apps, so businesses can see what their customers are doing inside the apps they create, and maybe tie that to a marketing automation apps to deliver messages or offers based on the actions of individual customers. It brings together business process and customer engagement into a single package, Holden explained.
Developers (or tech-savvy business users) will leverage a web-based console to define which subset of standard or custom objects to copy from the Salesforce database. By default, data is retrieved from Salesforce every 10 minutes and loaded into a replicated schema within Heroku Postgres. If a bi-directional read/write synchronization is configured, changes are pushed back to Salesforce every 5 minutes. The service is designed to only copy modified columns in Heroku Postgres back to Salesforce in order to reduce the opportunity for conflict. While the Heroku Connect add-on is provisioned in the same data center as the running Heroku application, it’s not clear as to where Heroku data centers sit with regards to Salesforce itself.
Heroku Connect securely connects to the Salesforde API to synchronize data, and automatically chooses between the Salesforce SOAP or Bulk APIs depending on the data size. One of the touted benefits of this connector is that it lets developers use traditional SQL syntax to “query” Salesforce instead of going through an API. Mobile apps can put a strain on a system of record, and Heroku sees this connector as a way to improve app performance.
Because all data is statefully stored in the database, Heroku Connect allows Postgres to act as an API cache, quickly responding to read requests without requiring calls back to Salesforce. All the features of Postgres--including indices, extensions and special data types--is available to scale the real time access of your data.
Developers can sign up for Heroku Connect here and explore the feature set in the Heroku Dev Center.