Skip to main content

Component location: Monorepo vs Repositories

Every time you create a new component, a corresponding git repository is created. As a consequence, you should be aware of the repository's organization designed by your platform team.

Despite the component type, you might have to define the component location. A location is defined by 4 elements.

  1. Host: your git repository manager host
  2. User/Group: the group tree where the component repositories shall be created or your name.surname if you want to create the component in your workspace (not recommended)
  3. Repository: the repository where the component will be created
  4. Root Directory: the subdirectory in the specified repository where your product will be created

It's possible to create one repository for each component: in this case, you should fill the Root Directory form's field with . and every time that you create a new component you have to change the repository name to be unique within the Group selected. Otherwise, you can create a single repository where more than one component is stored organizing it with one subfolder for each component, in this case, the Root Directory field shall contain a tree whose final folder will be the location where the data product will be created

Hereafter is an example of how to fill the location form in case of monorepo:

Example of dp creation form in case of monorepo

Despite the system's flexibility, it is recommended to create a repository group for each product and a dedicated repository for each product component. Below is an example of a location form for this approach:

Example of dp creation form in case of multiple repositories

With this approach, you should obtain a repository group for each product which layout at the end should be something like:

Example of repo layout in case of multiple repositories

Refer to Repository Organization Good Practice page for further details.