Passer au contenu principal
Menu
Full Stack

E-COMMERCE MICROSERVICES

Architecture distribuée avec frontend React et backend Node.js, communiquant via RabbitMQ.

Dépôt bientôt disponible
ReactNode.jsMongoDBDockerTypeScript
Phase 1

Contexte

Après avoir construit un monolithe Node.js qui devenait ingérable (un bug paiement cassait le catalogue), j'ai voulu expérimenter les microservices. Pas juste la théorie : construire une vrai archi distribuée avec domaines métier découplés.

Phase 2

Méthodologie d'Apprentissage

  1. 1

    Lecture Building Microservices (Sam Newman) pour patterns fondamentaux

  2. 2

    Event Storming simplifié pour décomposer le domaine métier (Auth, Catalogue, Panier, Commandes)

  3. 3

    Développement service par service avec communication asynchrone RabbitMQ

  4. 4

    Docker Compose pour orchestration locale, migration progressive vers Kubernetes

  5. 5

    TypeScript strict end-to-end : interfaces partagées via package npm interne

Phase 3

Défis Techniques

Cohérence de données distribuées sans ACID

Impossibilité de transaction ACID entre services. Apprentissage pattern Saga : orchestration des commandes avec mécanismes de compensation (paiement OK → stock nok → rollback paiement).

Debugging inter-services chaotique

Bug service Commandes = 20min diagnostic avec logs dispersés. Solution : correlation ID propagé via headers HTTP + RabbitMQ headers, logs centralisés avec ELK.

Dépendances de données qui dérivent silencieusement

Contrats API changeaient sans sync. Migration vers TypeScript strict + schemas partagés npm = contrats as code.

Phase 4

Résultats

  • 4 microservices indépendamment dployables (Auth, Catalogue, Panier, Commandes)

  • Communication asynchrone fiable : RabbitMQ avec retry + dead-letter queues

  • Compréhension des trade-offs monolithe vs microservices (complexité vs scalabilité)

  • Capacité : debugger des systèmes distribués, implémenter patterns (Saga, CQRS)

Explore More

All Projects