In order to reduce the verbosity of the README some abbreviations have been adopted.
- ECST for Event Carried State Transfer
- EDA for Event Driven Architecture
This repo is meant as a companion of the bachelor thesis (link TBA) of mine.
The repo is composed of three branches:
- basic-system where a basic version of the application system is stored (without the telemetry capture)
- main which holds a copy of the EDA with the instrumentation in place
- faulty-system which holds the same system with a violation of the ECST principles (dependecy anti-pattern) purposely implemented
To get the system running follow the steps listed below, beware that the application is built with DockerComposeV2 (pytest may fail otherwise).
The system requires 3 programmes to be installed locally:
- Python: the application uses Flask for simulating the behaviour of a server on which each service is hosted.
- Docker Compose: the application makes use of the container technology for simulating the system. Additionally by utilising compose it is possible to start each service with the ports already configured.
By executing the command docker compose up --build
the application system will deploy automatically in its entirety (along with jaeger as telemetry capture service).
Either interact with the system (by either querying the gateway
service or the single services themselves) or run pytest
for some interactions to be simulated and recorded.
Access the frontend of the collection service by opening the web browser at the frontend port of Jaeger.