ADR-0007 Isolation of Use Cases

Date2021-05-11
StatusAccepted

Context

The project will build applications and deploy infrastructure for three different use cases:

  • UC-1: VR Designer
  • UC-2: Dress Me Up App
  • UC-3: Magic Mirror App

We would like to be free to evolve these applications independently, allowing development to proceed in parallel and enabling different routes to commercialization.

Services will be deployed to Google Cloud Platform (see ADR-0006) and are charged by usage (e.g. per API call). This makes it no more expensive to give each use case its own Firebase project and deploy resources independently for each project. During development, this can be done using the Firebase CLI but for a more controlled production environment we might prefer to use something like Terraform to define infrastructure as code.

Decision

We will isolate the infrastructure and deployment of resources for each use case.

Consequences

Applications can be developed independently, in parallel.

Applications can be deployed independently of each other.

Applications may consume the same third party APIs (see ADR-0005).

It will be easier to write authorization rules for cloud resources.