LOG430 — Architecture logicielle
Lab series from ÉTS's software-architecture course: a single store-management app is re-architected from one lab to the next. The path runs from a containerized monolith (Docker, CI/CD) to client-server with DAO, CQRS with polyglot persistence (PostgreSQL + Redis), REST then GraphQL APIs, caching and load balancing (Nginx, Locust load tests), observability (Prometheus), then a break-up into microservices behind an API gateway, an isolated payment microservice, an orchestrated saga with distributed tracing (Jaeger), event-driven architecture with Kafka (event sourcing, choreographed saga, Outbox pattern) and finally distributed databases (YugabyteDB / CockroachDB). The capstone, CanTelcoX, consolidates it into 5 DDD microservices (a database per service) behind a high-availability Kong gateway, with Redis caching and Prometheus/Grafana observability.
Context
ÉTS software-architecture course: a single store-management app is re-architected from one lab to the next.
- ▸From a containerized monolith to microservices
- ▸REST then GraphQL APIs
- ▸Caching, load balancing, observability
- ▸Saga, Kafka and distributed databases
The journey
Each lab adds a production constraint and the system is re-architected to meet it.
- ▸DAO · CQRS · DDD · polyglot persistence (PostgreSQL + Redis)
- ▸API gateway (KrakenD / Kong) · load testing (Locust)
- ▸Orchestrated saga + distributed tracing (Jaeger)
- ▸Event sourcing + Outbox pattern (Kafka) · YugabyteDB / CockroachDB
Capstone — CanTelcoX
The capstone consolidates it all: 5 DDD microservices, a database per service, behind a high-availability Kong gateway.