← Geri

2026-06-20

Geriye Dönük Mevzuat Değişikliği Sorunu: Düzenleyici, Zaten Gönderdiğiniz Verinin Kurallarını Yeniden Yazdığında

Düzenlenmiş sektörlerde çalışan her veri mühendisi, uyumluluk için sistem inşa etmeyi öğrenir. Çoğunun birkaç yıllık rapor gönderdikten sonra fark ettiği şey ise uyumluluğun naif mimarileri kıran bir zaman boyutuna sahip olduğudur.

EGM'ye bir GEV raporu, sigorta birliğine bir HAYMER kaydı veya Hazine'ye bir devlet katkısı hesaplaması gönderdiğinizde, kalıcı tek bir beyanda bulunmuyorsunuz. Düzenleyicinin daha sonra — bazen yıllar sonra — gönderim anında var olmayan kuralları kullanarak yeniden yorumlayabileceği bir beyanda bulunuyorsunuz. Ve bunu yaptıklarında, sizden orijinal sürümü değil, düzeltilmiş sürümü üretmeniz bekleniyor.

Bu, geriye dönük mevzuat değişikliği sorunudur ve Türk finansında gördüğüm hemen hemen her pipeline, mimari olarak buna hazırlıksızdır.

İki Farklı Uyumluluk Sorunu

Bir düzenleyicinin tarihsel verileriniz hakkında sorabileceği iki ayrı soru vardır:

Ekiplerin çoğu, ilk soruya iyi cevap veren sistemler kurar. Neyin, ne zaman, hangi şema ile ve hangi doğrulama mantığına karşı gönderildiğini loglarlar. Gönderim yaptıkları gün uyumlu olduklarını kanıtlayabilirler.

Denetimlerde, mutabakat taleplerinde ve düzeltme döngülerinde aslında karşımıza çıkan ikinci sorudur. Ve bu, temelden farklı bir mühendislik problemidir; çünkü tarihsel girdileri, o girdiler oluşturulduğunda mevcut olmayan kural setlerine karşı yeniden inşa etmeyi gerektirir.

Devlet Katkısından Somut Bir Örnek

Devlet katkısı pipeline'ı, 2013'ten bu yana birkaç yorumlama döngüsünden geçti. Basit bir örnek: eşleştirme amaçları için "uygun katkı" olarak sayılan şeyin tanımı defalarca netleştirildi, daraltıldı ve yeniden genişletildi. Kısmi ay girişleri, işveren destekli dönüşümler ve iade tersine çevirmeleri etrafındaki uç durumların hepsi geriye dönük olarak yeniden tanımlandı.

Yeni bir yorum geldiğinde, genellikle özetle şunu söyleyen bir genelge alırsınız: son N ayı yeni kurallara göre yeniden hesaplayın, tutarsızlıkları tespit edin, düzeltmeleri gönderin ve katılımcılara halihazırda yansıtılmış eşleştirme tutarlarını mutabık kılın.

Pipeline mimariniz şuna benziyorsa:

o zaman başınız belada demektir. Çünkü arşiv, çıktıyı içerir; girdileri orijinal formunda içermez ve kesinlikle farklı bir kural setine karşı tekrar oynatılabilecek bir formda içermez. Sonuç olarak, durumu çoktan ilerlemiş üretim OLTP sistemlerinden yeniden inşa etmeye çalışırsınız — ekiplerin tam da o noktada birinin üç ay önce bir katılımcı kaydını değiştirdiğini ve tekrar oynatma için geri almaya yetecek ayrıntıda bir denetim izi olmadığını keşfettiği yer burasıdır.

HAYMER ve GEV'in Bana Öğrettikleri

HAYMER ve GEV benzer dinamiklere sahiptir. Teknik şema görece sabit kalır, ancak alanların semantik yorumu kayar. 2019'da bir anlama gelen bir poliçe durum kodu, 2022'de netleştirilmiş bir tanım kazanır ve artık 2019–2021 gönderimleriniz — o zaman doğru olmalarına rağmen — 2022 kurallarına göre teknik olarak yanlıştır.

Düzenleyici düzeltilmiş bir yeniden gönderim istediğinde, çoğu pipeline'ın korumadığı üç şeye ihtiyacınız vardır:

Bunlardan herhangi birinin eksik olması, bir haftalık bir düzeltme projesini altı aylık bir arkeoloji kazısına dönüştürür.

Mimari Kayma

Yeterince fazla bu döngüden geçtikten sonra çıkarılan ders şudur: gönderim pipeline'ları bitemporal sistemler olarak modellenmelidir. Birbirinden bağımsız iki zaman çizelgesini takip etmeniz gerekir:

Somut olarak bu şu anlama gelir:

Bunların hiçbiri egzotik teknoloji değildir. Düzenleyici kural setinin sürümlenmiş bir reducer olarak ele alındığı event sourcing ile aynı desendir. Zor olan kısım teknik değildir; ek depolama ve karmaşıklığın değerli olduğuna iş tarafını, ilk geriye dönük değişiklik konuşmayı zorunlu kılmadan önce ikna etmektir.

Bunu Atlarsanız Maliyeti Ne Olur

Yalnızca gönderim anı uyumluluğu için sistem kuran ekipler, bunun bedelini öngörülebilir üç şekilde öder:

Pratik Çıkarım

Türk emeklilik, sigorta veya benzer şekilde düzenlenmiş herhangi bir alanda bir mevzuat pipeline'ı inşa ediyor veya sürdürüyorsanız, mevcut mimarinize tek bir soru sorun: bugün, on sekiz ay önce yapılmış bir gönderimin girdilerini alıp, gelecek yıl yazacağınız bir kural seti üzerinden tekrar oynatabilir ve deterministik, savunulabilir bir çıktı üretebilir misiniz?

Cevap hayırsa, uyumluluk için inşa etmiyorsunuz demektir. Gönderim için inşa ediyorsunuz. Bu ikisi aynı şey değildir ve farkın ne zaman önemli olduğuna karar veren düzenleyicidir.