Today we are pleased to announce a significant update to Heroku Connect, one that is a culmination of two years of work to improve every aspect of the service. We’ve focused on three primary areas: improving write speed, geographically expanding the service, and intelligently guiding design and troubleshooting workflows. To that end, we’ve enabled bulk writes resulting in a 5x average increase in sync performance to Salesforce, deployed Connect in six global regions to be closer to customers’ databases, and built three guided management experiences that significantly increase user productivity.
Collectively, these enhancements will enable Heroku Connect to continue to meet the ever increasing demands of enterprise customers.
We’ve been fortunate to see rapid adoption of Connect amongst our largest enterprise customers. Not surprisingly, these customers tend to have large amounts of data, complex data models, and very high expectations when it comes to performance.
set of features detailed below provide substantial increases in speed and resiliency of data synchronization.
Undoubtedly our single most requested feature, bulk writes to Salesforce is now a reality. As of today, the feature is in public beta with opt-in available via a support request. In our testing we’ve observed 4-5x performance increases over the SOAP API. If you have a need to push large batches of updates to Salesforce, this is the only way to go.
One of the key benefits of Heroku Connect is its built-in knowledge of Salesforce; another key benefit is resiliency. The two come together in this feature, which automatically pauses and queues pending write operations anytime that Salesforce is unavailable (i.e., maintenance windows). Once connectivity is restored, changes are automatically sent over to Salesforce. No need for manual intervention or custom coding, it just works.
Bulk API queries previously required a second, post-processing step to fetch and subsequently write foreign keys to related tables in Postgres. Heroku Connect can now do everything in a single pass and the result is a 5x reduction in overall time to fully complete bulk load operations. The more complex the data model, the more time will be saved.
Connect is now deployed globally to each of our six Private Space regions: Dublin, Tokyo, Sydney, Frankfurt, Virginia, and Oregon. Not only does this enable addressing data isolation requirements, it provides a large performance increase in synchronization speed by virtue of being able to co-locate Heroku Postgres and Connect with Salesforce. Moving forward, this will form the foundation of our compliance-focused initiatives.
Over the years we’ve observed that a significant percentage of Connect customer issues are rooted in suboptimal design decisions. When you consider how easy it is to setup Connect (be it correctly or incorrectly), in many cases these are literally day 0 decisions coming back to haunt months later. Other times, the world changes around Connect, configurations become outdated, and errors begin to surface. Taken together, these high-level use cases represented a tremendous opportunity to improve the overall user experience across the full application lifecycle.
Data models change – it’s a fact of life. Salesforce admins make changes to Salesforce objects. ORMs make changes, sometimes unexpectedly, to Postgres databases. Internally, we call this ‘schema drift’ and, as you might expect, changes to data types, lengths, and structure all have the potential to break synchronization. Heroku Connect will now detect schema changes and provide very specific reports to users, detailing precisely what changed and how. We can’t prevent change, nor would we want to, but we now make it easy to quickly and easily recover from unintended consequences.
As the name implies, these are design-time checks, done in real-time, with the goal of making it easy to properly configure Connect. Each validation is backed by a dedicated section in our documentation that explains the issue and why you should care. Design Time Validations and Connect Diagnose work against a shared a repository of validation rules. The primary distinction between the two is when and how the validations are surfaced. Here’s an example of how we display validations in the user interface at design time:
This feature provides an easy way to assess the health of your connections at runtime by way of of the new connect:diagnose command. The result is a robust set of well-documented checks against best practices and recommended design patterns delivered in a concise, easy to parse format. This is particularly useful when troubleshooting or filing support tickets. Here’s a sample of the Connect Diagnose output:
This update of Connect delivers a robust set of new features designed to meet the needs of enterprise customers. To learn more about Heroku Connect, checkout the Heroku Connect page and the Heroku Connect Elements listing. If you’re an existing customer and would like to participate in the bulk writes beta, let us know by visiting Heroku Help.