ÖZET VE TEKNİK CEVAP
Domain-Driven Design (DDD) yaklaşımında izole **Sınırlandırılmış Bağlamlar (Bounded Contexts)** tanımlamak işin sadece yarısıdır; asıl zorluk **bu bağlamların birbirleriyle nasıl entegre olduğu ve veri paylaştığıdır**. İki ekip aynı veritabanı tablosunu paylaşırsa veya iç modellerini versiyonsuz dışarı açarsa, sistem anında birbirine sıkı sıkıya bağlı bir dağıtık monolite dönüşür. Eric Evans, ekipler arası güç dengelerini ve mimari sınırları netleştirmek için **Bağlam Eşleme (Context Mapping)** modellerini tanımlamıştır: (1) **Paylaşılan Çekirdek (Shared Kernel)**: İki ekip domain modelinin çok küçük ve kritik bir parçasını ortaklaşa yönetir; her değişiklik iki ekibin onayını gerektirir. (2) **Müşteri-Tedarikçi (Müşteri/Tedarikçi - U/D)**: Üst kaynak (Upstream) ekip, alt tüketici (Downstream) ekibin ihtiyaç duyduğu özellikleri teslim etmekle yükümlüdür. (3) **Boyun Eğen (Conformist)**: Alt ekibin hiçbir yaptırım gücü yoktur ve üst ekibin modelini olduğu gibi kabul eder. (4) **Bozulma Önleyici Katman (ACL)**: Alt ekip kendi saflığını korumak için üst ekibin karmaşık modelini dönüştüren bir tercüman katmanı kurar. (5) **Açık Ana Sunucu Servisi (OHS / PL)**: Üst ekip herkes için standart, dökümante edilmiş bir protokol (REST/Protobuf) yayınlar.
Mühendislik El Kitabı & Mekanizma
1. Temel Çalışma Mekanizması
Bağlam eşleme 7 standart ilişki topolojisiyle çalışır: (1) Shared Kernel: Ortak kütüphane/şema, çift takım onayıyla güncellenir. (2) Upstream/Downstream ($U o D$): Değişim akışı; $U$ değiştiğinde $D$ etkilenir. (3) Müşteri-Tedarikçi ($C/S$): Üst ekip alt ekibin ihtiyaçlarını yol haritasına alır. (4) Conformist ($CF$): Alt ekip üst ekibin modeline aynen uyar. (5) Anti-Corruption Layer ($ACL$): Alt ekip üst servisten gelen veriyi kendi saf diline tercüme eder. (6) Open Host Service ($OHS/PL$): Standartlaştırılmış açık API ve şema (OpenAPI). (7) Ayrı Yollar (Separate Ways): Entegrasyon maliyeti iş değerini aştığı için bilerek sıfır entegrasyon seçmek.
2. Doğru Kullanım Senaryosu
Kurumsal servis mimarileri (SOA), mikroservis geçişleri, monolit modernizasyonu ve şirket birleşmelerinde (M&A) teknik entegrasyonlar.
3. Prodüksiyon Arıza Modları
Shared Kernel'ın kontrolsüz büyümesine izin verip şirket kodunun yarısını ortak kütüphaneye doldurarak takımların bağımsız canlıya çıkışını kilitlemek; kötü tasarlanmış eski bir sisteme Conformist yaklaşıp yeni servisleri eski sistemin borcuna batırmak.
4. Teşhis ve Telemetri Sinyalleri
Bir ekibin kendi kodunu canlıya alabilmek için başka bir ekibin dağıtımını beklemek zorunda kalması; aynı veritabanı tablosuna 4 farklı mikroservisin doğrudan yazması.
5. Önleme ve Mimari Bariyerler
Mimari Karar Kayıtlarında (ADR) açık Bağlam Haritaları (Context Maps) çizin; eski veya dış sistemlerle entegre olurken mutlaka ACL kullanın; Shared Kernel kullanımını yalnızca değiştirilemez temel değer nesneleriyle (Value Objects) sınırlandırın.
6. Mimari Ödünleşimler (Trade-offs)
Bağlam eşleme net servis sahipliği kurar ve mimari bağımlılıkları önler; ancak sürekli ekipler arası koordinasyon ve çeviri katmanı bakımı gerektirir.
Vaka İncelemesi (TinyCTO Örneği)
Bir perakende şirketinin modern Öneri mikroservisi 15 yıllık eski COBOL Stok monolitine bağlandı. Ekip başlangıçta Conformist yaklaşıp eski `INV_ITEM_MST_V1` modelini doğrudan kullandı. Eski sistemdeki kolon isimleri değiştiğinde canlıdaki öneri motoru çöktü. Ekip bir Bozulma Önleyici Katman (ACL) kurdu: Bir adaptör eski veriyi okuyup modern `UrunKatalog` domain modeline tercüme etti. Sonraki COBOL değişiklikleri tamamen bu ACL adaptörü içinde eritildi; öneri motoru tek bir satır değişmeden %100 ayakta kaldı.
İnteraktif Konsept Alıştırmaları
2 AlıştırmaDDD Bağlam Eşlemede Bozulma Önleyici Katman (Anti-Corruption Layer - ACL) nedir?
Sıkı denetlenmeyen bir Paylaşılan Çekirdek (Shared Kernel) neden risklidir?
Stratejik DDD: Bağlam Eşleme (Context Mapping), Paylaşılan Çekirdek (Shared Kernel) ve Müşteri-Tedarikçi İlişkileri — Sıkça Sorulan Sorular
Bağlam Eşlemede 'Upstream' (U) ve 'Downstream' (D) ne anlama gelir?
Upstream (U) kararlarıyla alt servisi etkileyen sağlayıcıdır; Downstream (D) ise bu kararlardan etkilenen tüketici servistir.
Açık Ana Sunucu Servisi (Open Host Service - OHS) nedir?
Üst sistemin birçok alt sisteme standart ve kararlı bir dille (OpenAPI, Protobuf) erişim sağladığı herkese açık API protokolüdür.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸Bağlam Eşleme, etki alanları arasındaki stratejik entegrasyonu ve organizasyonel ilişkileri tanımlar.
- ▸Modern domain mantığını eski sistem modellerinden korumak için Bozulma Önleyici Katmanlar (ACL) kullanın.
- ▸Canlıya çıkış kilitlenmelerini önlemek için Paylaşılan Çekirdek kullanımı sıkı sınırlandırılmalıdır.
- ▸Upstream/Downstream haritaları ekipler arası güç dengelerini ve teknik bağımlılıkları açık hale getirir.
Yaygın Yanılgılar
- ✗Yanılgı: Mikroservisler senkron kalmak için ortak veritabanı tabloları paylaşmalıdır (Gerçek: Veritabanı paylaşımı dağıtık monolit bağımlılığı ve şema kilitlenmesi yaratır).
- ✗Yanılgı: Her entegrasyona mutlaka ACL yazılmalıdır (Gerçek: Üst sistem iyi tasarlanmış açık bir API sunuyorsa doğrudan kullanım veya Conformist model yeterli olabilir).
Karar Kılavuzu & Önceliklendirme
Takım kontratlarını netleştirmek ve kurumsal mikroservislerde etki alanı modellerini izole etmek için mimari planlarda açık Bağlam Haritaları çizin.
Doğrulanmış Kaynaklar & Referanslar
- [BOOK]Domain-Driven Design: Tackling Complexity in the Heart of Software (Strategic Design & Context Mapping)— Eric Evans (Addison-Wesley Professional)
