En premier lieu, gardez les données normalisées (non redondantes) autant que vous le pouvez. Si les données sont entièrement normalisées, aucune mise à jour des données ne peut les rendre incohérentes.
Vous ne pouvez pas toujours garder les données normalisées, autrement dit, vous ne pourrez peut-être pas éliminer la redondance. Dans ce cas, les états peuvent être incohérents. La chose à faire est alors de tolérer l’incohérence et de la réparer périodiquement à l’aide d’un programme quelconque qui la corrige et la corrige.
Il existe une forte tendance à essayer de gérer la redondance de manière stricte au moyen de notifications. Celles-ci sont non seulement difficiles à vérifier, mais peuvent également entraîner de graves problèmes d' efficacité. (Une partie de la tentation d'écrire des notifications est due au fait qu'elles sont pratiquement encouragées en POO.)
En général, tout ce qui dépend de la chronologie des événements, des messages, etc., devient vulnérable et nécessite des tonnes de codage défensif. Les événements et les messages sont caractéristiques des données redondantes, car ils communiquent les modifications d'une partie à une autre, en essayant d'éviter les incohérences.
Comme je l'ai dit, si vous devez avoir une redondance (et les chances sont assez bonnes, vous devez), il est préférable de pouvoir a) tolérer et b) le réparer. Si vous essayez d'éviter les incohérences uniquement au moyen de messages, de notifications, de déclencheurs, etc., il vous sera très difficile de les rendre robustes.