At Hutte, we are advocates of scratch org-based development for Salesforce. There are however scenarios and projects where there may be more practical choices than relying on scratch orgs.
The alternative is to resort to sandbox-based development despite the drawbacks of working in "long-lived" environments.
Typically, teams share development orgs or allocate permanent dev orgs to individual team members. Unfortunately, this practice often leads to outdated development environments and complications when integrating multiple team members' contributions.
This can make your development cycle a bit of a rollercoaster. Enter "Sandbox Pooling" to the rescue.
Sandbox Pooling explained
Sandbox Pooling seamlessly combines the strengths of scratch orgs – known for their short lifespan – with sandboxes, which provide the most efficient way to replicate the production environment you're targeting your development for.
This concept mirrors and extends to Hutte's popular Scratch Org Pooling feature, where we make fresh Orgs instantly accessible to Developers at any time. You can simply select an Org and start developing your features without any delays.
Hutte has now introduced a similar concept for sandboxes, and here's how it works.
Pooling for Admins
As a Hutte Administrator, when you connect a production org with sandboxes to Hutte, the platform will fetch all available sandboxes for you. You also have the option to create a sandbox directly through Hutte.
You can also add them to a Pool, ensuring that unused Orgs are kept refreshed automatically or easily refreshed manually.
How to implement and schedule refreshes
Assuming you want to add a specific Org, simply make it available in Hutte. You can assign it a custom name, bypassing Salesforce's restrictive naming conventions for sandboxes. For instance, you can name it "Pool Org 1" and choose to add it to our Pool.
On the Pool list view, you'll find all Orgs that have been made available for the Pool. The ones currently in use are marked as "In Use" and cannot be claimed for feature development. They are also excluded from being refreshed.
The other Orgs will display the "Eligible for refresh" status if they have passed the 24-hour window required by Salesforce for developer sandbox refreshes.
If an Org hasn't reached that window, it is considered fresh and ready to use.
You can effortlessly refresh all Orgs with a simple click of a button. You can also enable a scheduler to ensure that all Orgs in the Pool not currently in use undergo automatic refreshes. These refreshes happen every hour, refreshing all eligible Orgs.
You can also configure the scheduler to avoid refreshing during specific time frames, such as business hours, ensuring that not all Orgs are in refresh when you need one. Once you've saved your settings, your Pool Orgs will only refresh outside the specified time frame.
How this feature benefits your team members
As a low-code or pro-code team member, you can select an Org from the Pool when embarking on a feature development journey. Pick a fresh Org, which guarantees to be very close to the source of truth – possibly the production org, or another Sandbox.
💾
For instance, you may maintain an integration org where you consolidate all changes before promoting them further to UAT and production. You can then set this Org as the template from which Pool Orgs are refreshed.
When it comes to making changes, with Hutte, you can effortlessly log in to an Org with a single click and make declarative changes. Hutte allows you to preview what has changed (identifying metadata in a dirty state), and it allows you to ‘pull’ those changes – essentially transferring them to Git. You can also create a pull request in the connected Git repository, all through our intuitive interface, without the need to install Git or become proficient in Git commands.
If you prefer to work from your IDE, seamlessly connect from VS Code (or another IDE of your choice) using our “auth snippet.” Pro-code team members may send their commits from their local environment, and can still seamlessly collaborate with less technical team members working on the same feature, using the Hutte UI.
Users and the Pooling feature
As a user, you'll have an overview of all available Orgs when selecting "Pool," ordered by their last refresh date. You can easily select a fresh Org from this list and start your feature development.
Once you have finished your work, pulled your changes, and marked your feature as complete, the Org will be automatically returned to the Pool and refreshed for future feature development.
We hope you find this feature beneficial, and we look forward to your feedback!
Harald is the Co-Founder of Hutte, bringing his vision of no-code DevOps to life. His passion enables teams and individuals to focus on what matters most – bringing value to the users they build for.