AP8 — Répliquer un état avec un CRDT
Trois postes comptent indépendamment des contributions, puis échangent leurs états. Nous construisons un G-Counter et expliquons pourquoi des messages répétés ou réordonnés ne faussent pas le total.
AP8, 13 h 45 – 17 h
Comment suivre la séance
Le projet compteur-replique commence par des fonctions pures, puis les place dans trois GenServers de la même VM. Nous retardons volontairement les échanges pour simuler une coupure, puis vérifions la convergence. L’éditeur de texte concurrent sert d’ouverture finale et constitue une piste de projet au choix pour AP9.
Suivre les copies et les messages
Chaque boîte est un poste. Elle contient ce qu’il connaît des contributions d’Alice, Bob et Carol. Faites avancer l’expérience ; avant chaque livraison, prédisez la map du destinataire.
Au départ, les trois postes connaissent zéro contribution. Les échanges sont retenus ; chacun peut continuer à compter localement.
Aucune fusion pour l’instant. Le total d’un poste est la somme des trois composantes qu’il connaît.
| Poste | Alice | Bob | Carol | Total |
|---|---|---|---|---|
| Alice | 0 | 0 | 0 | 0 |
| Bob | 0 | 0 | 0 | 0 |
| Carol | 0 | 0 | 0 | 0 |
Le mouvement accompagne une étape déclenchée par vous. Les textes et les nombres donnent toutes les informations, même sans animation. Les trois processus restent actifs : la coupure est simulée en retenant les échanges.
Rendu
Gardez le projet, la trace de la coupure et une explication de la fusion ; modalités à préciser en cours
Squelette du projet
Téléchargez, dézippez à la racine de votre dépôt ap-homework, premier commit, et c'est parti : le README vous guide pas à pas. Le README indique les tests du premier palier et les commandes pour poursuivre.
⬇ Tableau de contributions répliqué
Trois répliques dans IEx, un compteur par poste et une fusion par maximum. Aucun réseau à configurer.
niveau secret B6 — Le compteur partagé
Protéger un compteur partagé entre cent tâches concurrentes.
Une ressource facultative pour reprendre ou prolonger une idée du cours.
Run in LivebookTélécharger le .livemd
Ce sujet n'est pas un devoir supplémentaire. S'il est retenu comme bonus pour un cycle, je préciserai les exercices concernés, le dossier de votre dépôtap-homework où les déposer et l’échéance. Son absence ne retire aucun point.
Un bout de syntaxe oublié ?
Le poly reprend le langage aux chapitres 1 à 4, avec ses exemples et leurs résultats. Pour cette séance, relisez le chapitre 11.
