ÖZET VE TEKNİK CEVAP
ADR'lar teknik kararların arkasındaki bağlamı, kısıtları, elenen alternatifleri ve bilinçli ödünleşimleri doğrudan kod reposunda saklayarak yeni mühendislerin eski tartışmaları körü körüne yeniden açmasını ve geçmiş tavizleri yanlış yorumlamasını engeller.
Mühendislik El Kitabı & Mekanizma
1. Temel Çalışma Mekanizması
Michael Nygard tarafından öncülük edilen Mimari Karar Kaydı (ADR), doğrudan kod deposunda (`docs/adr/0012-choose-kafka-over-sqs.md`) saklanan hafif bir markdown belgesidir. Her ADR katı bir durum makinesine (Taslak -> Önerilen -> Kabul -> İptal/Red) sahiptir ve şu alanları içerir: Durum, Bağlam (iş gereksinimleri ve kısıtlar), Karar (seçilen mimari yön) ve Sonuçlar (olumlu, olumsuz ve nötr etkiler).
2. Doğru Kullanım Senaryosu
Yeni programlama dili, ana veritabanı, servisler arası iletişim protokolü, kimlik doğrulama altyapısı veya temel kütüphane soyutlamaları seçilirken zorunludur.
3. Prodüksiyon Arıza Modları
İlk kısıtlar hiç yazılmadığı için ekiplerin her 18 ayda bir aynı paradigmalar arasında (monolit -> mikroservis -> monolit) savrulması; neden yapıldığı anlaşılmayan tuhaf bir tasarım kararı yüzünden kritik sistemlerin terk edilmesi.
4. Teşhis ve Telemetri Sinyalleri
Mühendislerin sohbet kanallarında sürekli 'Neden Y yerine X kütüphanesini kullanıyoruz?' diye sorması, mimari kararların ayaküstü sohbetlerde alınması ve PR'ların felsefi tartışmalarla tıkanması.
5. Önleme ve Mimari Bariyerler
ADR şablonlarını repo oluşturma araçlarına gömün; net bir Karar Verici eşliğinde 5 günlük süre kısıtlı RFC yorum süreci işletin; büyük mimari etkisi olan PR'ları yanında bir ADR olmadan onaylamayın.
6. Mimari Ödünleşimler (Trade-offs)
Kod yazmadan önce hafif bir dokümantasyon süreci getirir; karşılığında kalıcı kurumsal hafıza, yüksek ekip uyumu ve sıfır sürtünmeli oryantasyon sağlar.
Vaka İncelemesi (TinyCTO Örneği)
TinyCTO Bölüm 18: Yeni gelen bir lider, özel Redis kilidini Postgres satır kilidiyle değiştirmeye kalkışarak büyük bir kilit krizine yol açtı. Orijinal ADR, Postgres kilitlerinin bağlantı havuzu sınırları yüzünden elendiğini açıkça belirtiyordu; bu belge okunsaydı kesinti önlenebilirdi.
İnteraktif Konsept Alıştırmaları
3 AlıştırmaStandart bir Nygard ADR belgesinin dört temel bölümü nedir?
ADR'lar neden harici bir wiki yerine doğrudan kod deposunda saklanmalıdır?
Bir ADR durumunun 'İptal / Değiştirildi' (Superseded) olarak işaretlenmesi ne anlama gelir?
Mimari Karar Kayıtları (ADR) & RFC Mühendislik Kültürü — Sıkça Sorulan Sorular
Nihai bir karar verilmeden önce bir RFC tartışması ne kadar süre açık kalmalıdır?
Standart pratik 5 ila 7 iş günüdür. Katı bir süre sınırı konmazsa RFC'ler önemsiz detay tartışmalarına (bikeshedding) ve bitmek bilmeyen kararsızlığa dönüşür.
Bir ADR'ı kabul veya reddetme konusunda nihai yetki kime aittir?
RFC sürecindeki tüm geri bildirimleri değerlendirdikten sonra, o alandan sorumlu atanmış teknik lider veya Staff Mühendise aittir.
Her küçük pull request için bir ADR yazılmalı mıdır?
Hayır. ADR'lar geri döndürülmesi zor, kritik veya ekipler arası mimari kararlar için kullanılır. Rutin hata düzeltmeleri ve standart özellik geliştirmeleri ADR gerektirmez.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸Aktif ADR pratiğine sahip mühendislik ekipleri, teknik geçmişi şeffaflaştırarak kıdemli mühendislerin oryantasyon süresini %40'a kadar kısaltır.
- ▸Bir ADR, seçilen yön kadar neyin NEDEN seçilmediğini belgelemek açısından da aynı derecede değerlidir.
Yaygın Yanılgılar
- ✗Kabul edilmiş bir ADR'ın kalıcı olduğuna ve asla sorgulanamayacağına veya değiştirilemeyeceğine inanmak.
Karar Kılavuzu & Önceliklendirme
ADR'ları ilgili git reposunda kaynak kodla birlikte markdown formatında saklayın ve standart PR inceleme süreçleriyle onaylayın.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL-DOC]Documenting Architecture Decisions— Michael Nygard Blog (2011)
- [OFFICIAL-DOC]Architectural Decision Records Organization & Tooling— ADR GitHub
