ADR-0013 Metail VStitcher Headless Service

Date2021-05-17
StatusAccepted

Context

Several eTryOn use cases require background processing of Browzwear files to provide functionality (for example, to generate the Alembic animation file for use case 1). Processing of a Browzwear file will always be triggered by a middleware function when a Browzwear file is uploaded to Cloud Storage.

Decision

We will follow the pattern described in ADR 12 with a Google Cloud Function in the eTryOn account invoking a Step Function in the Metail AWS account to process Browzwear files.

Metail will implement an AWS Step Function to read input from, and write output to, Cloud Storage using pre-signed URLs. The step function will invoke the desired script to run in VStitcher Headless running on an EC2 Windows instance.

Consequences

We will have to define the processing required by each use case and encapsulate this as scripts that can be run by VStitcher Headless.

We will need a way to identify which script to invoke for each use case (e.g. through a naming convention in Cloud Storage).

If we are unable to secure a license to run VStitcher Headless, the step function will have to initiate a manual process where jobs are completed by a human using VStitcher Desktop.