About virtual environments

Introduction

Virtual environments are a great way for enterprise organisations to manage large-scale sync requirements with minimal process flows and no replication of effort.

The problem

Some customers run multiple stores and brands through a single Patchworks account, with duplicate process flows to cover testing, staging and production.

To illustrate the complexities of this, imagine running an international online shop where your online storefronts operate through Shopify - one per country and environment.

Suppose you operate in 5 countries (UK, FR, DE, ES and US) - so that’s 5 stores. Each store then requires a sandbox and live environment, so you would need 10 instances of a Shopify connector.

Next, we come to process flows. Let's assume you need 5 process flows to meet all operational requirements (orders sync, warehouse sync, accounts sync, inventory sync, CRM sync). A single process flow receives source data from a single Shopify instance, which means creating and managing 50 process flows.

Now, suppose you need to update a process flow. This change would need to be replicated in all 50 process flows. You can see this illustrated below:

The solution

A virtual environment is a collection of overrides (known as replacements) that can be applied when a 'master' process flow runs, so the requirements for a particular environment can be met. To better understand, let's go back to our scenario above.

In this case, we can create 5 'master' process flows:

  • Orders sync

  • Warehouse sync

  • Accounts sync

  • CRM sync

  • Inventory sync

And 10 virtual environments:

  • UK (Sandbox)

  • UK (Live)

  • FR (Sandbox)

  • FR (Live)

  • DE (Sandbox)

  • DE (Live)

  • ES (Sandbox)

  • ES (Live)

  • US (Sandbox)

  • US (Live)

Each virtual environment is configured with the required overrides for your 'master' process flows - i.e. components to be replaced in the 'master' flow when it's deployed and running in this environment.

You may think this is still a lot of setup, and it is when we have such a high number of environments to consider. However, this is a one-off effort - the benefit comes when you need to update a process flow further down the line. Instead of replicating the same change in 50 process flows, you make it once in the relevant 'master' process flow and then deploy that change to all virtual environments.

What replacements can I configure for a virtual environment?

For any virtual environment, you can define overrides/replacements for the following process flow components:

Virtual environments at scale

A process flow can be deployed to virtual environments directly from the process flow canvas - select the required flow version, then a virtual environment, and confirm.

However, deploying multiple process flows to different virtual environments can be streamlined using packages. Here, you create a 'package' containing the required process flow versions and any virtual environments where these should be deployed. You can then deploy the package, updating all virtual environments in a single operation.

When managing multiple flows in different environments, it can be useful to compare what's deployed to where - the compare feature allows you to do this.

API

Throughout this documentation, you'll find information and instructions for working with virtual environments via the dashboard. However, all tasks detailed here can also be completed using our API.

Enabling virtual environments for your company profile

Virtual environments are available for all subscription tiers. This is currently an opt-in feature - please contact support if you'd like it switched on for your company profile.

Virtual environment allowances

By default, all core subscription tiers allow for the creation of up to 2 virtual environments (for example, a test and a live environment). If you require more environments, please contact our Sales team for details.

Existing subscription tier and bolt-on allowances apply when creating process flows for (and running process flows) in virtual environments.

Last updated