# 11. seperation of common and executor-base library

Date: 2021-11-21

## Status

Accepted

## Context

We have two code sharing libraries, the executor-base and the common library. The executor-base implements shared logic that all executors need, but other services don't. The common library has much more wide reaching implementations, such as the implementation of the SelfValidating class. These could form a single common library, or two seperate common libraries. 

## Decision

There will be a separate library for common and executor-base. The libraries share different type of code, and have different reasons to change. It would not make sense to have the shared code from executors in every other service which needs access to other shared code. Services that use the code in the common library should not need to be dependent in any way on the executor-base.

## Consequences

Changes impact fewer services. However, this decision will increase the number of service dependencies and therefore increase complexity in managing those dependencies.  
