Module / package structure

  • Main domain name

    • Application

      • Optional: subdomain name (in case of inheritance) → following same structure as main domain

      • Mapper: holds the mapper of transforming domain models to response models

      • Service: holds the interface for implementation in the domain package

      • REST: holds the controller for providing the API for the domain

    • Domain

      • Optional: subdomain name (in case of inheritance)

      • Model: holds the domain model

      • Service: implementation of the interface provided in the application package

      • Repository: holds the interface for accessing the infrastructure package

    • Infrastructure

      • Optional: subdomain name (in case of inheritance)

      • Model: holds the technical entities

      • Repository: holds the data access layer

        • E.g. JPARepository / Impl

    • All models (request / response) used in the API should be saved in the tx-model project to be reusable for cucumber testing.