Example of Apache Seata-managed distributed transactions across multiple Spring Boot microservices
Go to infra folder:
docker compose up
This will start:
- MySQL (with the tables needed for Seata Server).
- Seata Server.
- Grafana, Prometheus and Tempo for observability.
Foe each microservice folder (bff, credit-api and shipping-api) run:
./gradlew bootRun
This will start:
- microservice
- the dedicated db (MariaDB for credit-api and PostgreSQL for shipping-api)
- Grafana: http://localhost:3000
- Spring Boot dashboard: http://localhost:3000/dashboards
- Prometheus & Tempo: http://localhost:3000/explore
Microservices OpenAPI:
- bff: http://localhost:8080/swagger-ui/index.html
- credit-api: http://localhost:8081/swagger-ui/index.html
- shipping-api: http://localhost:8082/swagger-ui/index.html
