Aller au contenu

Connecter et stocker

Flux, concurrence et persistance — faire communiquer les composants et gérer leurs données à l'échelle.


Une fois le système structure en composants, il faut les faire communiquer et persister leurs données. Ces deux aspects — connexion et stockage — sont intimement lies : le choix d'un pattern de communication (synchrone, asynchrone, event-driven) conditionne directement la stratégie de persistance, et inversement.

La concurrence est le fil rouge de ce chapitre. Des qu'un système a plusieurs producteurs ou consommateurs, les questions de synchronisation, d'ordre des messages et de cohérence des données deviennent centrales. Raynal (Concurrent Programming: Algorithms, Principles, and Foundations) fournit les fondations théoriques. Linz et Rodger (An Introduction to Formal Languages and Automata) apportent le cadre formel pour raisonner sur les automates et les protocoles.

On part des fondamentaux de la concurrence et des applications réparties, puis on couvre les communications synchrones et asynchrones, les contrats d'API, les patterns d'intégration distribuée, la persistance polyglotte avec le théorème CAP, et les architectures CQRS/event sourcing.

UE couvertes : NSY014 — Systèmes concurrents, NFP103 — Données et algorithmes, NFE115 — Données réparties, GLG203/204 — Genie logiciel

Parcours

# Section Contenu
01 Concurrence Modèles de concurrence, exclusion mutuelle, consensus, horloges
02 Applications reparties Client-serveur, RPC, RMI, serialisation, registres
03 Synchrone et asynchrone Patterns de communication, brokers, backpressure
04 Contrats et gateway API gateway, service mesh, contrats, versioning
05 Sagas et integration Sagas, outbox, idempotence, dead letter queues
06 Persistance distribuee Polyglot persistence, CAP/PACELC, partitioning
07 CQRS et event sourcing Séparation lecture/écriture, projections, snapshots