Aller au contenu
SYS–11Étude de casScolaireAcadémique · ÉTS

LOG430 — Architecture logicielle

Série de laboratoires du cours d'architecture logicielle à l'ÉTS : une même application de gestion de magasin est réarchitecturée d'un labo à l'autre. Le parcours va d'un monolithe conteneurisé (Docker, CI/CD) vers du client-serveur avec DAO, du CQRS avec persistance polyglotte (PostgreSQL + Redis), des API REST puis GraphQL, du cache et de la répartition de charge (Nginx, tests de charge Locust), de l'observabilité (Prometheus), puis une décomposition en microservices derrière une passerelle d'API, un microservice de paiement isolé, une saga orchestrée avec traçage distribué (Jaeger), de l'architecture événementielle avec Kafka (event sourcing, saga chorégraphiée, patron Outbox) et enfin des bases de données distribuées (YugabyteDB / CockroachDB). Le projet de fin de session, CanTelcoX, regroupe le tout en 5 microservices DDD (une base par service) derrière une passerelle Kong en haute disponibilité, avec cache Redis et observabilité Prometheus/Grafana.

Rôle
Développeur (majoritairement solo)
Type
Travaux d'architecture (ÉTS)
Stack
Python · Docker · Kafka · PostgreSQL
Statut
Académique
01

Contexte

Cours d'architecture logicielle à l'ÉTS : une même application de gestion de magasin est réarchitecturée d'un laboratoire à l'autre.

  • Du monolithe conteneurisé aux microservices
  • API REST puis GraphQL
  • Cache, répartition de charge, observabilité
  • Saga, Kafka et bases de données distribuées
02

Le parcours

Chaque labo ajoute une contrainte de production et le système est réarchitecturé en conséquence.

  • DAO · CQRS · DDD · persistance polyglotte (PostgreSQL + Redis)
  • Passerelle d'API (KrakenD / Kong) · tests de charge (Locust)
  • Saga orchestrée + traçage distribué (Jaeger)
  • Event sourcing + patron Outbox (Kafka) · YugabyteDB / CockroachDB
03

Projet de fin — CanTelcoX

Le projet de fin de session regroupe le tout : 5 microservices DDD, une base par service, derrière une passerelle Kong en haute disponibilité.

12
dépôts · monolithe → microservices
5
microservices DDD (une base/service)
REST+GraphQL
+ Kafka · Saga
Grafana
observabilité Prometheus