Infrastructure
CRDT : Conflict-free Replicated Data Type. « Type de données répliqué sans conflit », par analogie avec une liste de courses partagée où chacun ajoute ses articles dans son coin et où tout se fusionne sans dispute au retour.
Principe : Chaque réplique se modifie localement, sans coordination ; états ou opérations sont échangés plus tard et fusionnent de façon déterministe, si bien que toutes les répliques ayant reçu les mêmes mises à jour convergent vers le même état.
Deux familles : Les CRDT à base d'état échangent l'état complet et le fusionnent par une opération commutative, associative et idempotente ; les CRDT à base d'opérations diffusent les opérations, ce qui exige une livraison fiable.
Exemples : Compteurs, ensembles avec marqueurs d'ajout et de suppression, registres où le dernier écrivain gagne, séquences pour l'édition de texte collaborative.
Limites : Sans conflit ne veut pas dire sans surprise : la fusion est garantie, pas son sens métier. Un CRDT réconcilie deux volontés contraires avec l'impartialité d'un notaire qui ne lirait pas les testaments.
Ce qui arrive si on s'en passe
Sans type de données conçu pour la réplication, des copies modifiées chacune dans son coin divergent à la reconnexion : l'une écrase l'autre, des ajouts disparaissent, et chaque réplique affirme de bonne foi détenir la vérité. Il faut alors une coordination centrale, qui interdit de travailler hors ligne, ou une résolution manuelle des conflits, qui interdit de dormir. Adopter un CRDT sans réfléchir à sa sémantique n'épargne pas tout : la fusion converge toujours, mais un registre où le dernier écrivain gagne efface une modification légitime sans laisser de trace du perdant. L'unanimité est garantie, l'équité beaucoup moins, ce qui rappelle d'autres assemblées.
Explication de la marmotte
Imaginons une liste de courses partagée entre plusieurs téléphones, dont certains sont sans réseau dans le métro. Chacun ajoute ou raye des articles de son côté. Quand les téléphones se reconnectent, tout le monde doit retrouver exactement la même liste, sans qu'un chef décide qui a raison. Il existe des façons d'organiser l'information qui garantissent ce résultat : peu importe l'ordre d'arrivée des modifications, tous les appareils finissent par afficher la même chose. C'est ce qui permet d'écrire à plusieurs dans un même document, même hors connexion.
Où ce terme est utilisé
- Local-first : architecture de données locale et durable (4 occurrences)
- Chiffrement bout en bout pour collaboration multi-utilisateurs (2 occurrences)
