Veri yapısını değiştirmek ile çalışan sistemi değiştirmek aynı iş değildir. Şema evrimi, bir verinin alanları, türleri, ilişkileri veya kısıtları zamanla değişirken eski ve yeni üretici-tüketicilerin geçiş boyunca birlikte çalışabilmesini sağlayan tasarım ve geçiş sürecidir.
Yaygın varsayım, migration başarıyla çalıştıysa değişikliğin tamamlandığıdır. Oysa eski uygulama sürümleri hâlâ yazıyor, kuyrukta eski biçimli mesajlar bekliyor veya geri dönüş yeni alanları tanımıyorsa şema teknik olarak güncel, sistem fiilen iki zamanda yaşar. Bakım borcu da uyumluluk kodunun ne zaman kaldırılacağını kimsenin bilmediği yerde birikir.
Daha kullanışlı sınır, önce genişletip sonra daraltmaktır: yeni alanı eski okuyucuları bozmadan eklemek, yazma ve okuma yollarını gözlemek, birikmiş veriyi dönüştürmek, ardından eski biçimi kaldırmak. Küçük test, eski ve yeni sürümleri aynı veri kümesi üzerinde çapraz çalıştırıp ileri geçiş kadar geri dönüşün de veri kaybetmediğini doğrulamaktır.