Heroku Connect is an add-on for Heroku that allows you to synchronize selected Salesforce data with a Heroku Postgres database. In order to understand what that means, let’s examine each of these products to help you determine if Heroku Connect is the right solution for your needs.
Table of Contents:
Heroku is a cloud computing service that’s been around since 2007. Heroku uses application containers called “dynos” to provide services. Like most cloud services, Heroku’s dynos have flexible scalability and security. Dynos can be sized from 512 MB to 14 GB of RAM. They can be always on, or they can sleep until they are needed. Heroku allows scaling of dynos both horizontally or vertically - in other words, if you need more performance, you can add more dynos or make your existing dynos bigger. Groups of dynos can be grouped together in private spaces so their backend communications are on a network that only those dynos can access.
Dynos can run a wide variety of software - out of the box, Heroku officially supports 8 different programming languages. Heroku also supports a set of managed data services, including the Postgres relational database, the Redis key-value data store, and the Apache Kafka distributed messaging service. In addition to these basic tools, Heroku has hundreds of add-ons that are building blocks for your application. For example, add ons are available to help your app store data in Amazon S3, manage user authentication via Oauth, and do enterprise ETL with Xplenty. Heroku Connect is one of the add-ons available directly from Heroku.
One of the key challenges of any Linux virtual machine deployment is configuration - setting up programming languages, web servers, databases and other services. Heroku addresses this challenge by having pre-configured packages that run on dynos, and managing all the plumbing connecting your dyno to other dynos and to the Internet. Dynos can be configured using a web interface or a command-line interface.
Overall, the Heroku environment is probably best suited for the developer or integrator who wants to be able to deploy apps or add-ons with maximum scalability and minimum hassle. The combination of the flexibility of dyno application containers and the ease of deployment of complex software packages makes Heroku a great platform for applications like Connect and Xplenty.
Postgres is an open-source object relational database which has been under active development since the 90’s. Today’s Postgres is fast, stable and flexible - it supports user-defined data types, stored procedures in many different languages and extensions including GIS. Postgres is supported by almost every programming language, so code written in most languages can access data in Postgres natively.
Postgres is Heroku’s database of choice, and it has some powerful features specific to the Heroku platform. Databases can be forked (cloned) with a single command. Read-only replicated database copies, called followers by Heroku, can be set up with a simple command - something that requires complex and time-consuming configuration in other environments. Heroku Postgres has a number of data safety features, including continuous protection, which logs database transactions on multiple backup servers, where they can be replayed in case your Heroku dyno has a hardware issue. Heroku also monitors Postgres instances using automated health checks to find issues before they affect production. If high availability is a requirement, Heroku has premium tiers that offer automatic failover between database instances.
Heroku Postgres also allows you to isolate traffic between your Heroku applications on a private network that never touches the Internet. Heroku also performs regular security audits and conforms to a wide variety of security standards.
With the built-in and Heroku-specific functionality that Heroku provides for Postgres, as well as the enterprise-grade security features, you can see why it’s a great choice for Heroku Connect.
We know that Heroku is a good fit for organizations that want a solution with maximum scalability with the minimum amount of administration. And we’ve seen that Heroku Postgres is a powerful, industry-standard database with a number of extensions tailored for reliability and security. So it makes sense that Salesforce would choose both of these technologies to build Heroku Connect which, as the name implies, is a near real-time connection with the Salesforce object database.
Heroku Connect provides two major Salesforce connection capabilities:
1. Data Synchronization
Heroku Connect allows the administrator to create a uni- or bi-directional sync between tables in a Heroku Postgres database and objects in a Salesforce org. In the case of a uni-directional sync, Heroku Connect replicates changes made to the Salesforce databases to your Heroku Postgres database. A bi-directional sync functions the same as a uni-directional sync, except that updates made to columns in the Postgres database are replicated to the corresponding fields in Salesforce object instances. The speed of the replication varies depending on a number of system factors, but it is fair to say that it is near real-time, with updates typically happening in minutes. Heroku Connect gives the administrator control over which API is used to write to Salesforce, as well as how often the database is polled for changes.
Heroku Connect is deployed in a Heroku instance via a one-button process. Once deployed, all configuration occurs on the Heroku dashboard, a web-based interface that’s easy to navigate. The details of synchronization are controlled by object mappings maintained in a Heroku Connect dashboard. These mappings allow you to choose which fields should be synchronized with Salesforce. The ability to choose fields keeps costs lower by minimizing storage and API overhead, and it assures that Heroku Connect performance will not be compromised by synchronizing fields that aren’t going to be used in the Postgres database.
2. External Objects
Heroku Connect also supports Salesforce Connect, which allows Salesforce to display data from external databases in context with native Salesforce data. This is used for integration with systems that have large volumes of data, or data is frequently updated. Data in the external database must have a shared key with a Salesforce Object in order to relate the data to the associated Salesforce Object instance. Once that relationship is established, the data in the external system is available for display, for query and for search. Salesforce Connect is a powerful facility which is complemented by Heroku Connect functionality - for example, the processes updating data in the external database can look up records in a synchronized Heroku Postgres table instead of directly in Salesforce before insert or update to ensure relational integrity.
Connecting an external database via Salesforce Connect can be complicated. Heroku Connect includes Heroku External Objects which is a wrapper that is pre-configured to allow easy connections between Salesforce and a Heroku Postgres database.
Of course, since Heroku Connect is hosted by Heroku, all of the Heroku Add Ons are available to Heroku Connect dynos. This includes, for example, enhanced logging via Papertrail. These add-ons are basically one-click installs with configuration pages in the Heroku console.
Heroku Connect with Xplenty
Heroku Connect does one thing - synchronizing Salesforce data with a Postgres database - and it does it well. But having that data in Postgres is usually just the first step for any integration effort. Xplenty’s data pipeline tools, controlled by an easy-to-use drag-and-drop interface, allow you to perform the data validation and transformation required by real-world integration. Xplenty interfaces with dozens of different systems without programming, so you can use an Xplenty data pipeline to integrate data stored your in-house or cloud system with Salesforce data in Heroku Postgres. If you want to learn more about how Heroku Connect and Xplenty, can be your complete Salesforce integration solution, read more on Salesforce integrations.
Conclusion and Further Reading
Heroku Connect is a powerful and flexible solution for synchronizing a relational database with Salesforce object data. We hope this introduction helped you understand more about the base capabilities of Heroku Connect.
Related reading: Xplenty and Heroku Connect: A Complete Salesforce Integration Solution.
Want to get more involved with the Heroku community? Find a conference that's right for you by reviewing our top five Heroku events for 2020.