L'objectif de ce travail est de tester la mise en place d'une architecture CQRS. Les pré-requis pour le lancement en local sont Docker et Docker Compose.
Pour lancer l'infrastructure localement:
./ci-cd/build-all.sh
./ci-cd/deploy.sh
Création des utilisateurs:
curl -i -H "Host:cqrs.com" -X POST http://localhost:8000/users -d '{"username":"slavayssiere", "email":"slavayssiere@wescale.fr", "address":"23 rue taitbout 75009", "age":32}'
curl -i -H "Host:cqrs.com" -X POST http://localhost:8000/users -d '{"username":"alexis", "email":"alexis@wescale.fr", "address":"23 rue taitbout 75009", "age":22}'
Création des topics de discussion
curl -i -H "Host:cqrs.com" -X POST http://localhost:8000/topics -d '{"topicname":"wespeakcloud"}'
curl -i -H "Host:cqrs.com" -X POST http://localhost:8000/topics -d '{"topicname":"perroquetGif"}'
Lancement d'une conversation
curl -i -H "Host:cqrs.com" -X POST http://localhost:8000/messages -d '{"userid":1, "topicid":2, "data":"no piaf here"}'
curl -i -H "Host:cqrs.com" -X POST http://localhost:8000/messages -d '{"userid":2, "topicid":2, "data":"some perroquet here"}'
Modification d'un utilisateur
curl -i -H "Host:cqrs.com" -X PUT http://localhost:8000/users/2 -d '{"age":33}'
curl -i -H "Host:cqrs.com" -X GET http://localhost:8000/users/2
Récupération d'une discussion
curl -i -H "Host:cqrs.com" -X GET http://localhost:8000/topics
curl -i -H "Host:cqrs.com" -X GET http://localhost:8000/topics/2
curl -H "Host:cqrs.com" -X GET http://localhost:8000/topics/2/complete | jq .
Modification d'un message et relecture de la conversation
curl -i -H "Host:cqrs.com" -X GET http://localhost:8000/messages/1
curl -i -H "Host:cqrs.com" -X PUT http://localhost:8000/messages/1 -d '{"data":"no perroquet here"}'
curl -H "Host:cqrs.com" -X GET http://localhost:8000/topics/2/complete | jq .
Pour supprimer les conteneurs lancés localement.
cd iac
docker-compose down -v --remove-orphans
Se connecter à MySQL - le mot de passe est "my-secret-pw" par défaut.
mysqlsh --sql root@localhost:3306
Se connecter à Redis.
redis-cli -h localhost