T2-Project Documentation¶
Introduction¶
The T2-Project is a reference application provided in two variants:
T2-Microservices (implementing the saga pattern)
T2-Modulith (monolith with the same modular structure)
The project is loosely based on the TeaStore Application.
The initial main purpose of the T2-Project reference application was to trigger SLO violations with regard to response time and availability (see Microservices Usage for more information). The purpose of the T2-Modulith is to compare a microservices application with a modulith application, mainly in regards of energy efficiency (see Energy Measurements for more information).
System Context¶
The T2-Project is a fictitious store for tea and provides a minimalist User Interface (UI) that enables an ordering process (without real payment). However, as a reference application, the T2-Project is primarily aimed at researchers who want to carry out various tests. The UI is not required for this, as the tests are carried out directly via the API provided. The interface of a credit institute is simulated for the payment process. The payment process can also be completely deactivated via configuration so that the fake credit institute is not necessarily required for tests. Therefore, there are no dependencies on real external systems. The following image visualizes this as a system context diagram:
Source Code¶
The T2-Project is organized under the GitHub organization t2-project in multiple repositories.
A convenience repo including all repositories exists so that not every repo needs to be cloned separately: https://github.com/t2-project/t2-project.
The source code of this documentation is stored in the repository Documentation.
Common deployment and configuration files, e.g. for Kubernetes or Docker, are located in one repository called DevOps.
Modulith implementation¶
Microservices implementation¶
Shared domain classes are part of the Common repository, that is a dependency of all services.
Core services:
Supplemental services: