Skip to content

Alerte Infection — Système Microservices (POC)

Architecture Générale

Objectif

Mettre en place un système distribué permettant de : - Déclarer des cas d’infections (professionnels de santé) - Administrer les infections (agences) - Consulter et visualiser les données (public) - Notifier les abonnés en cas de nouveau cas

Le projet est conçu comme un POC microservices avec fonctionnement en mode dégradé : chaque composant doit pouvoir fonctionner indépendamment.


1) Architecture générale (microservices)

L’architecture repose sur une API Passerelle qui expose un point d’entrée unique pour les frontends, et route les appels vers des microservices spécialisés (Cases, Infections, Notifications), tout en intégrant une API externe de cartographie (OSM).

Architecture Générale


2) Couche Frontend (interfaces)

Trois interfaces représentent trois besoins métiers distincts :

  • Front Médecins : ajout / consultation de cas
  • Front Public : consultation, carte, filtres
  • Front Agence : administration des infections

Elles communiquent en HTTP JSON (via la passerelle en mode normal).

Couche Frontend


3) API Passerelle (Gateway)

La passerelle joue le rôle de Gateway :

  • Routing vers les microservices
  • Agrégation (si besoin de composer plusieurs réponses)
  • Normalisation des réponses JSON (contrat commun)
  • Intégration de l’API Map (OSM)

API Passerelle


4) Backend Cases (microservice)

Responsabilité unique : gérer les cas (création, consultation, filtres, mise à jour, suppression).
Le service possède sa base MySQL dédiée.

Backend Cases


5) Backend Infections (microservice) — Ma contribution principale

Responsabilité unique : gérer les infections (données médicales “référentiel”).
Service autonome FastAPI + DB dédiée, déployable via Docker.

Données gérées

  • Nom, incubation, détection, contagion, niveau (0 → 1)

Endpoints

  • POST /infectionGET /infectionGET /infection/{id}
  • PUT /infection/{id}DELETE /infection/{id}
  • GET /health

Backend Infections


6) Mode dégradé (résilience)

En mode dégradé, les frontends peuvent contacter directement les microservices disponibles. Chaque service continue de fonctionner même si la passerelle (ou un autre service) est indisponible.

Mode Dégradé


Ce que j’ai appris

  • Architecture microservices et responsabilité unique
  • Pattern API Gateway
  • Conception d’API REST (contrat JSON commun)
  • Persistance multi-bases (MySQL + PostgreSQL)
  • Déploiement Docker / Compose
  • Résilience : mode dégradé + healthcheck

Liens


Note Portfolio

Ma contribution principale concerne le service Backend Infections (design, développement, dockerisation).