This repository contains the experiments related to the Msc. thesis 'Migrating stateful monoliths to micro frontends'. The experiment is divided into 6 sections:
- Initial wicket monolith to be migrated
- Micro frontends experiments and code snippets
- Client Side Rendering setup
- Server Side Rendering setup (horizontal)
- Server Side Rendering setup (vertical)
- Benchmark results
To be able to reproduce the tests, some tools are necessary:
- Running the applications: Docker
- Running the tests: Grafana K6 | Node 23.3
- Running the analytics: Python 3 | Jupyter Notebook | Python packages
Note that these tests were run on a Macbook pro 14-inch 2023 (Apple M2 PRO chip + 16gb RAM + macOS 15.1.1). Therefore, some changes were required to be able to run the clusters like an internal urls change: 'http://localhost' -> 'http://docker.for.mac.localhost'. Your mileage may vary based on OS and hardware.
Run services:
- Checkout desired branch (1, 3, 4 or 5)
- move to project directory
- (optional) make sh file executable
- Start cluster:
docker-compose up -d --build
Reproduction steps (server-side):
- Run tests:
./run-test.sh
Reproduction steps (client-side):
- Checkout branch 6 in another folder
- Run cluster as shown above
- Move to playwright folder
- Install node packages:
npm install - Run test:
npm run test:vitals