On January 31, 2025, Salesforce will discontinue Salesforce Functions, which is also referred to as Salesforce Elastic Services. To ensure that the functions you’ve deployed in your organization continue to work, you must transfer them to another product before the end-of-life date.
In this article we’ll go through what Salesforce Functions (or Salesforce Elastic Services) are, the benefits of using Salesforce Functions, and what the future holds for those currently making use of this technology.
What are Salesforce Functions?
Salesforce Elastic Services are a set of cloud-based services that allow developers to build and deploy scalable applications on the Salesforce platform. These services are designed to handle large volumes of data and traffic, and they can be scaled up or down on demand to meet the changing needs of your application.
Benefits of Salesforce Functions
Salesforce Functions has been generally available since Winter ‘22. Some of the benefits of Salesforce Functions are as follows:
- Automatic Scaling: Salesforce Functions automatically scales your application up or down based on demand, so you never have to worry about running out of capacity.
- High Availability: Salesforce Functions are designed to be highly available, with multiple layers of redundancy to prevent outages.
- Global Reach: Salesforce Functions are available in data centers around the world, so you can deploy your application to your customers wherever they are.
- Security and Compliance: Salesforce Functions are built on the Salesforce platform, which is one of the most secure and compliant cloud platforms in the world.
Why is This Happening?
Salesforce’s decision to retire Salesforce Functions is shrouded in mystery, as the company hasn’t publicly disclosed the specific reasons. However, there are plausible explanations for this move.
It could be driven by a strategic focus on core products and services, such as CRM and marketing automation, allowing Salesforce to channel its resources more effectively. Another possibility is simplification, as retiring a relatively new product like Salesforce Functions could streamline their product lineup.
Additionally, if the adoption of Salesforce Functions hasn’t met expectations, cost control might be a motivating factor. While the exact cause remains undisclosed, these factors offer insights into the decision.
For anyone using these services, you will want to know what is happening and when. The following are key dates you need to be aware of (subject to change):
- 31st October 2023: The last day customers can purchase new Elastic Services subscriptions.
- 31st January 2024: The last day customers can renew their existing Elastic Services subscription.
- 31st January 2025: The last day Elastic Services is available in Salesforce orgs.
Migrating to Heroku Apps
Although the end-of-life is still over a year away, it’s probably a good idea to start thinking about migrating your Salesforce Functions. One option of which is to use Heroku Apps instead. However, there are some key differences between the two which you need to be aware of:
- Trust Boundary: Salesforce Functions have security managed by Salesforce, while customers control trust boundaries for Heroku apps, which are internet-exposed. Access to Heroku apps can be controlled using Private Spaces.
- Scale: Salesforce Functions can scale automatically, whereas Heroku apps have static scaling that can be configured manually. Autoscaling is available for specific Heroku dynos and those running in Private Spaces. Additional scaling options are offered through Heroku Add-ons.
- Invocation Time: Salesforce Functions have a fixed invocation time limit, while Heroku apps can run for extended periods.
- API Limits: Salesforce Functions have their own API allocation and limits, while Heroku apps are subject to standard Salesforce API limits for license-based users. Data syncing between Salesforce and Heroku Postgres via Heroku Connect doesn’t count towards Salesforce API limits.
- Identity: Salesforce Functions are invoked as Cloud Integration or Platform Integration User, whereas Heroku app deployed functions can enforce more specific access control as they are invoked as a designated Salesforce user.
- Management: Heroku apps can be managed through Heroku Dashboards, providing a user interface for tasks like configuration, metrics tracking, and billing information.
- Developer Experience: Heroku apps can be configured and deployed using the Heroku CLI, offering broader language support and Heroku Pipelines for CI/CD.
- Add-Ons: Heroku apps have a wide range of Heroku Add-ons available, offering various tools and services for app development, extension, and operation.
If you do wish to migrate to Heroku Apps, this example migration repository can be used as a guide for migrating from Salesforce Functions to Heroku Apps, which consists of example code and Apex classes to call your functions and substitute the Elastic Services API within your Salesforce organization.
Salesforce’s decision to retire Salesforce Functions has caused quite a stir in the Developer Community, especially as it’s only been generally available for a short time. But whatever the reason, there is still a fair amount of time until the retirement actually happens, and Salesforce will provide tools to help your migration process. With options like Heroku Apps and AWS Lambda to migrate to, planning your migration right should cause minimum disruption.