Skip to content

Repository Architecture

Louis-Axel Ambroise edited this page Apr 11, 2023 · 2 revisions

There is an effort made to keep the codebase of this EPCIS repository as simple as possible while keeping it readable and efficient.

Dependency diagram

The repository only contains 3 projects plus 3 others for the different supported data providers (to keep the EntityFramework migrations separated and isolated). The dependency diagram can be represented as follow:

graph TD;
  FasTnT.Host-->FasTnT.Provider.*;
  FasTnT.Host-->FasTnT.Application;
  FasTnT.Host-->FasTnT.Domain;
  FasTnT.Application-->FasTnT.Domain;
Loading

Design choices

  • The default subscription implementation is done with a background service hosted in the Host project. This is fine for single-instance deployments but if you intend to use horizontal scaling of your deployment another implementation might have to be implemented.
  • v1.2 and 2.0 parser classes are totally separated. The XML parser/formatter might look very similar, but this way it is easier to totally disable any of the standard versions and make some changes in the model without affecting other functionalities.
  • The authentication is kept minimal using HTTP Basic authentication. It's not the goal of this repository to manage user accounts and complex authentication. You're free to change it to whatever suits you needs.
Clone this wiki locally