Skip to content

Latest commit

 

History

History
23 lines (12 loc) · 1.35 KB

0005-build-system.md

File metadata and controls

23 lines (12 loc) · 1.35 KB

5. Infrastructure as Code

Date: 2023-10-12

Status

Accepted

Context

The development phase of "10x Digital Access to Justice Platform" has started. The development effort will focus on building modular form system components.

A method of structuring cohesive and well-encapsulated modules is required. Additionally, the module system should enable efficient builds and integrate with other goals, such as generating dependency diagrams.

Decision

A pnpm workspace will be utilized. Workspaces are a standard method of organizing multiple interdependent node.js packages in a single repository. pnpm offers efficient package management and well-implemented workspaces.

Turborepo will be leveraged to managed efficient builds. In a multi-project workspace, tracking interdependencies between packages is required. Turborepo implements an efficient caching system and execution engine that leads to efficient and developer-friend builds.

Consequences

Reasoning about dependencies will be enhanced due to each module having an explicit package. Additionally, dependencies will be modularized in a manner that makes it easy to lift and shift the code to another location. Lastly, developer efficiency will be enhanced by the fast builds provided by Turborepo.