The stay-in-sync project aims to provide a solution to synchronizing data between various REST-APIs while integrating support for the asset-administratio-shell and the tractus-x eclipse dataspace connector
The repository currently consits of five quarkus apps, two angular ui's and a helmchart for deployment.
- stay-in-sync-core consists of the three quarkus services
- core-management Enables configuration of the application and dispatches necessary jobs for synchronization
- core-polling-node Polls data & provides data from source systems
- core-sync-node Executes transformation script and writes data to a target system
- core-graph-engine Provides graph-based conditional synchronization logic and change detection
- stay-in-sync-configurator-ui Frontend which exposes the api of the core-management to the user
- stay-in-sync-monitoring Provides debugging functionality for transformations and monitoring data
- monitoring-ui Application Metrics, Logs and further data
- monitoring-backend builds state for monitoring-ui
- stay-in-sync-chart Helmchart to deploy the project onto Kubernetes
Following system requirements have to be met in order to start the application in development mode:
- Java 21
- Maven
- Nodejs
- rabbitmq
- mariadb
- Docker
Following commands can be used to setup docker containers for rabbitmq and mariadb
docker run --detach -it --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4-managementdocker run --detach -p 3306:3306 --name mariadb --env MARIADB_ROOT_PASSWORD=root --env MYSQL_DATABASE=stayinsync_core mariadb:latestPlease build the whole project once before starting a service with the database available like so:
mvn clean installTo start a quarkus app and its corresponding ui run in the folder of the quarkus-app
mvn quarkus:devSwagger UI not loading? If
http://localhost:8090/q/swagger-uishows the Angular app instead of Swagger UI, the browser has cached an outdated response. Fix: clear the browser cache (Settings → Clear browsing data → Cached images and files) and restart the browser completely.
A docker-compose.yml is provided at the root of the repository to start all services with a single command.
A .env file is required — copy the example and adjust as needed:
DB_NAME=stayinsync_core
DB_USERNAME=root
DB_PASSWORD=root
RABBITMQ_USERNAME=guest
RABBITMQ_PASSWORD=guest
GRAFANA_USER=admin
GRAFANA_PASSWORD=admin
docker compose up -ddocker compose --profile app up -ddocker compose --profile app --profile monitoring up -d| Service | URL |
|---|---|
| Configurator UI / core-management | http://localhost:8090 |
| Swagger UI (core-management) | http://localhost:8090/q/swagger-ui |
| core-sync-node | http://localhost:8091 |
| core-polling-node | http://localhost:8095 |
| Monitoring UI | http://localhost:8099 |
| Grafana | http://localhost:3000 |
| RabbitMQ Management | http://localhost:15672 |