Pertama-tama, pertahankan data dinormalisasi (tidak berlebihan) sebanyak yang Anda bisa. Jika data sepenuhnya dinormalisasi, tidak ada satu pun pembaruan pada data yang dapat membuatnya tidak konsisten.
Anda tidak selalu dapat menjaga data dinormalisasi, dengan kata lain Anda mungkin tidak dapat menghilangkan redundansi, dalam hal ini dapat memiliki kondisi yang tidak konsisten. Yang harus dilakukan adalah mentolerir ketidakkonsistenan dan memperbaikinya secara berkala dengan semacam program yang menyapu dan menambalnya.
Ada kecenderungan kuat untuk mencoba mengelola redundansi secara ketat melalui pemberitahuan. Ini tidak hanya sulit untuk memastikan mereka benar, tetapi dapat menyebabkan inefisiensi yang sangat besar . (Bagian dari godaan untuk menulis notifikasi muncul karena dalam OOP mereka didorong secara praktis.)
Secara umum, apa pun yang tergantung pada urutan waktu peristiwa, pesan, dll., Akan rentan dan membutuhkan banyak kode pertahanan. Peristiwa dan pesan adalah karakteristik data dengan redundansi, karena mereka mengkomunikasikan perubahan dari satu bagian ke bagian lain, berusaha mencegah inkonsistensi.
Seperti yang saya katakan, jika Anda harus memiliki redundansi (dan kemungkinan cukup bagus, Anda harus), yang terbaik adalah untuk dapat a) mentolerir, dan b) memperbaikinya. Jika Anda mencoba untuk mencegah ketidakkonsistenan hanya melalui pesan, pemberitahuan, pemicu, dll., Anda akan merasa sangat sulit untuk membuatnya kuat.