At Salesforce, innovation is one of our core values. With that in mind, we are committed to innovating on Salesforce Platform technologies like Heroku and Salesforce Functions, as well as through our AWS partnership, to unify and improve the developer experience. In this blog post, we give you an overview of our recent updates, our roadmap, and the power of combining these technologies.
Turn apps into connected experiences
Heroku is a platform as a service for building, deploying, running, and managing applications, and it continues to be an essential part of the Salesforce Platform. For organizations of all kinds, Heroku reduces ongoing DevOps expenses and provides the flexibility to scale on demand based on business needs. For developers and teams, Heroku enables them to build applications using their choice of tooling and a meticulously designed developer experience. Salesforce continues to invest in Heroku and make it easy to use with other Salesforce clouds.
Heroku Connect, a powerful add-on service from Heroku, is a data synchronization solution that automatically syncs data between Heroku Postgres and a Salesforce org, enabling developers to quickly build elastic, scalable apps that rely on Salesforce data. It decreases the burden of developers tasked with data synchronization between applications and Salesforce. Heroku Connect also plugs into other Heroku services (e.g., Apache Kafka on Heroku, Heroku Data for Redis, streaming data connectors, and is available through the Heroku Elements marketplace). There is no better solution to sync data between Salesforce and customer-facing applications without hitting API limits.
Natively scale on the Salesforce Platform
Salesforce Functions (GA Winter’22) provides a scalable compute environment on the Salesforce Platform for your business logic. Written in the languages and tools of your choice, and tightly integrated with the SFDX project directory structure and CLI, Salesforce Functions are hosted in Salesforce-managed elastic compute infrastructure and preconfigured to securely integrate with your org. Salesforce Functions can help you overcome the governor limits on the platform, specifically CPU, Memory, and Async Apex limits (as Functions async invoke is unlimited). Other limits, such as mixed DML and the number of HTTP callouts per request, are also lifted in Functions. Note that DML operations and queries performed from a function will run on the platform and must comply with governor limits.
Salesforce Functions recently incorporated the ability to use Heroku data services (Heroku Postgres, Heroku Data for Redis, and Apache Kafka on Heroku), which is one of my favorite innovations. To learn more, watch this session from TrailblazerDX ’22 or this great session on record de-duping from Dreamforce ’22. Also, my colleague Julián Duque ran some amazing codLive episodes on the topic, including: codeLive: Heroku Data in Functions with Redis, codeLive: Heroku Data in Functions with Apache Kafka, and codeLive: Heroku Data in Functions with Postgres.
Unleash the power of connected clouds
Salesforce and AWS announced their extended partnership in June last year, designed to make it easy for customers around the world to use the full set of Salesforce and AWS capabilities together to natively leverage AWS services in Salesforce, and enable both developers to build and launch custom applications, and securely connect data and workflows across both platforms.
Many customers already have data in a data store on AWS. Salesforce Connect adapters allow you to unlock that data within Customer 360 without the need for a custom integration or middleware. For example, the Salesforce Connect Adapters for Amazon DynamoDB and Amazon Athena allow you to virtualize data from AWS data services, like Amazon DynamoDB or Amazon S3, into Salesforce external objects.
The Event Relay for AWS Beta (GA), allows you to natively connect Salesforce and AWS with real-time events, accelerating the development of cross-platform applications. Event Relay also streamlines data synchronization when the data resides in your own AWS implementation.
Build faster, your way
The Salesforce Platform provides a set of primitives with Heroku, Salesforce Functions, and AWS partnership products that help you build applications more quickly and with greater flexibility. Developers love Heroku because they can focus on building applications and services, and not on maintaining infrastructure. Heroku strives to delight developers with an opinionated PaaS that streamlines modern app dev and DevOps, helping customers accelerate engineering velocity and deployment safety.
We understand that many customers already have data in a data store on AWS (e.g., Amazon RDS, S3, or DynamoDB). The Salesforce and AWS partnership expansion will drive the development of easy integrations between Salesforce and AWS services. If you want to integrate existing AWS services into Salesforce, you will now have the option to do so with a simplified set of configuration options. This partnership allows you to unlock that data within Customer 360 without having to sync it to a Postgres database on Heroku. Heroku data services and Heroku Connect are still great choices for customers without significant investments in AWS data stores.
From a developer’s point of view, there is immense value in having Salesforce provide a complete end-to-end solution for building within the ecosystem. With this in mind, we launched Salesforce Functions to deliver elastic compute capabilities on the platform to our developers. And with the Salesforce integrated developer experience (DX), they enjoy seamless access to Salesforce data and closer integration with the experiences built on low-code tools.
On the other hand, we know that business decisions may opt for existing capabilities over new capabilities. If a Salesforce customer happens to have workflows built-in with AWS services, then using Event Relay for AWS to trigger those workflows from Salesforce means they don’t have to spend valuable developer resources on building middleware or custom integrations.
With all these innovations in place, you may be wondering when to use one or the other, or when to use them together. Below are some tips based on use cases requirements:
REQUIREMENT | RECOMMENDED SOLUTION |
Create customer-facing digital experiences with access to Salesforce Core data and automation tools, such as Salesforce Flow | Heroku |
Uni- or bi-directionally connect data on Heroku with Salesforce | Heroku Connect |
Deliver scalable experiences within Salesforce trust boundaries using industry standard languages (additional 235K calls/day beyond the daily allocation limit) | Salesforce Functions |
Securely access Heroku data products, including Heroku Postgres, Apache Kafka on Heroku, and Heroku Data for Redis, directly from an elastic compute environment | Salesforce Functions |
Virtualize AWS data into Salesforce to build customer-aware enterprise applications | Salesforce Connect Adapters for AWS Data Services |
Access existing services or features on AWS from Salesforce workflows or applications | Event Relay for AWS |
Roadmap and next steps
To wrap up, let’s look at some related features that are on the roadmap and coming soon (see our forward-looking statement)!
- Heroku support in Salesforce CLI unification, which means that Heroku CLI commands will be available in our own
sf
executable (yes!), the same one used for Functions. - New low-cost Heroku Dynos plan. Dynos sleep after 30 minutes of no web traffic and only consume hours when active, providing an economical solution.
- Support for more languages in Salesforce Functions. The next one to come: Python! Take a look at the Dreamforce ’22 Developer Keynote to see it in action or sign up for the pilot.
- Salesforce Functions integration with Flow, LWC, and Platform Events.
- Support for additional AWS data stores in Salesforce Connect, such as Amazon RDS.
Take a deeper look at roadmaps on the Salesforce architects site and Heroku’s interactive public roadmap on GitHub.
If you want to try some code, take a look at our new account-merge and pdf-generator sample applications on GitHub, and contact your Account Executive if you need a courtesy license.
As you have seen, there’s a range of solutions available, depending on your current implementation and future expansion, to help you make the most of these Salesforce Platform technologies. Based on your feedback, we’re committed to providing you with primitives on the Salesforce Platform that enable you to build fast, your way.
About the authors
Alba Rivas works as a Principal Developer Advocate at Salesforce. She currently focuses on Lightning Web Components and Slack development. You can follow her on Twitter or Linkedin.
Srini Nirmalgandhi is the Director of Product Marketing at Salesforce focusing on developer products for the Salesforce Platform. You can reach out to him on Twitter or Linkedin.