Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,18 @@ Avant toute chose, clonez ce projet sur votre machine.
### 📦 Démarrer les composants liés aux microservices

Pour stocker les données de manière persistante et permettre à l’application de démarrer correctement, ainsi qu'assurer la communication des évènements, vous devez démarrer certains composants :
- PostgreSQl : Système de gestion de base de donnée relationelle. Pour cette PoC, une seule DB est démarrée, et chaque microservice utilise son propre schéma. En production, chaque micro service utilise sa propre instance de DB
- Kafka : Plateforme de messagerie distribuée qui permet aux services de communiquer en temps réel via des événements.
- Kafka UI : Interface web pour superviser les brokers Kafka, et notamment les événements liés à la réservation de lit.
- **PostgreSQL** : Système de gestion de base de donnée relationelle. Pour cette PoC, une seule DB est démarrée, et chaque microservice utilise son propre schéma. En production, chaque micro service utilise sa propre instance de DB
- **Kafka** : Plateforme de messagerie distribuée qui permet aux services de communiquer en temps réel via des événements.
- **Kafka UI** : Interface web pour superviser les brokers Kafka, et notamment les événements liés à la réservation de lit.

1. [**Installez Docker Desktop**](https://docs.docker.com/desktop/) sur votre machine.

2. Exécutez la commande `docker compose up` depuis la racine du projet pour démarrer les composants :
2. (**Optionnel**) Effacez les volumes locaux de persistance :
- `rm -rf db_data:/var/lib/postgresql/data` pour les données relationelles.
- `rm -rf kafka_data:/var/lib/kafka/data` pour les données d'évènements.
4. Exécutez la commande `docker compose up` depuis la racine du projet pour démarrer les composants :

## 🧱 Gestion des migrations de données avec Liquibase
Nous utilisons Liquibase pour versionner les changements de structure, gérer les migrations de données, et peupler la base avec des données de test.

> 💡 Nous utilisons le plugin [IntelliJ JPA Buddy](https://plugins.jetbrains.com/plugin/15075-jpa-buddy) pour générer les changelogs à partir des entités JPA, évitant ainsi les scripts SQL manuels.
> Toutes les modifications proviennent directement du modèle de domaine.
> Toutes les modifications proviennent directement des entités de chaque domaine.