Le read-your-writes est une garantie de cohérence dans les systèmes distribués ou les bases de données. Elle stipule que :

Si un processus effectue une écriture, toute lecture ultérieure effectuée par ce même processus doit refléter cette écriture.

Explications techniques :

Contexte :

Ce principe s'applique dans les systèmes où les données sont répliquées ou distribuées (ex. : bases de données NoSQL, systèmes de fichiers distribués, caches). Sans cette garantie, un processus pourrait écrire une valeur, puis lire une ancienne version de cette valeur en raison de la réplication asynchrone ou de latences réseau.

Exemple concret :

Un utilisateur modifie son profil (écriture).
Immédiatement après, il recharge sa page (lecture).
Read-your-writes garantit que la page affichera la version mise à jour, et non une ancienne version stockée dans une réplica non synchronisée.

Mécanismes pour l'assurer :

Versionnement des données : Chaque écriture incrémente un numéro de version, et les lectures vérifient que la version lue est ≥ à la dernière version écrite par le processus.
Routage des requêtes : Diriger les lectures d'un processus vers la réplica qui a reçu ses écritures (ex. : sticky sessions dans les caches).
Synchronisation forcée : Attendre la confirmation de réplication avant de permettre une lecture (coût en latence).

Relation avec d'autres modèles de cohérence :

Plus faible que la cohérence séquentielle (qui impose un ordre global des opérations pour tous les processus).
Plus forte que la cohérence éventuelle (où les lectures peuvent retourner des valeurs obsolètes).
Cas particulier de la cohérence causale : Si un processus A écrit x=1, puis un processus B lit x après avoir lu un effet de A, B verra x=1. Read-your-writes est une forme restreinte où A = B.

Limites :

Ne garantit pas la cohérence pour les autres processus : Un processus B pourrait encore voir une ancienne valeur.
Latence accrue : Attendre la réplication peut ralentir les opérations.

Applications :

Systèmes de gestion de profils utilisateurs (ex. : réseaux sociaux).
Paniers d'achat en e-commerce.
Éditeurs collaboratifs (ex. : Google Docs, où vos modifications doivent apparaître immédiatement pour vous).

Source doctrinale :
Ce principe est formalisé dans les modèles de cohérence des systèmes distribués, notamment dans "Distributed Systems: Principles and Paradigms" (Tanenbaum, 2017), et discuté dans le contexte des bases de données dans "Designing Data-Intensive Applications" (Kleppmann, 2017).