This project is a Spring Boot application using Axon Framework, RabbitMQ, and PostgreSQL, following * DDD* (Domain-Driven Design) and CQRS (Command Query Responsibility Segregation) principles.
git clone https://github.com/coundia/spring-axon-rabbitmq-starter.git
cd spring-axon-rabbitmq-starter
Before running the application, make sure you have installed:
Run the following command to start the Docker containers:
docker compose -f docker/main.yml up -d
mvn spring-boot:test-run
mvn spring-boot:run
Once the application is running, you can access the Swagger UI documentation here:
🔗 http://127.0.0.1:8093/swagger-ui/index.html#/
#}' POST http://127.0.0.1:8095/api/auth/register accept: / Content-Type: application/json
{ "username": "admin", "password": "admin" }
#}' POST http://127.0.0.1:8095/api/auth/login accept: / Content-Type: application/json
{ "username": "admin", "password": "admin" }
POST http://127.0.0.1:8095/api/auth/register accept: / Content-Type: application/json
{ "username": "string", "password": "string" }
POST http://127.0.0.1:8095/api/v1/commands/transaction accept: / Content-Type: application/json Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTc0NTAwMDY5NywiZXhwIjoxNzQ1MDM2Njk3fQ.mIc3-ALDasLCBiFaDx2pKzEWCOWAENSuMnUYgzmK2Y0
{ "reference": "string", "amount": 0 }
http://localhost:15672/#/queues
- `domain/`: logique métier, agrégats, events, value objects
- `application/`: services, DTOs, command/query handlers
- `infrastructure/`: persistance (JPA), messaging (RabbitMQ)
- `presentation/`: API REST (commandes & queries)
- `templates/`: fichiers mustache pour la génération de code
- `shared/`: utilitaires
Vor [tree.md](docs/tree.md)
Projet généré par : https://github.com/coundia/axon-web-cqrs-generator
- The application follows the CQRS pattern, separating command and query models.
- RabbitMQ is used as a message broker for event-driven communication.
- PostgreSQL is the primary database.
CC-BY-NC-SA-4.0