⚡ÖZET VE TEKNİK CEVAP
Servis başına veritabanı deseni, mikroservislere bağımsız şema evrimi ve hata izolasyonu kazandırırken; etki alanı sınırları arasında ACID işlemlerini, ilişkisel join sorgularını ve yabancı anahtar (FK) kısıtlamalarını feda etmeyi gerektirir.
Mühendislik El Kitabı & Mekanizma
6 Boyutlu Mimari Analiz⚙️1. Temel Çalışma Mekanizması
Mekanizma🎯2. Doğru Kullanım Senaryosu
Kapsam⚠️3. Prodüksiyon Arıza Modları
Kritik Risk📡4. Teşhis ve Telemetri Sinyalleri
Metrikler🛡️5. Önleme ve Mimari Bariyerler
Bariyerler⚖️6. Mimari Ödünleşimler (Trade-offs)
ÖdünleşimVaka İncelemesi (TinyCTO Saha Örneği)
Servis başına veritabanı desenini hayata geçirmek üç temel dağıtık sistem problemini çözmeyi gerektirir:
- ▸
Servisler Arası Veri Birleştirme (Cross-DB Join Yokluğu): Monolitte müşteri, sipariş ve stok tek bir SQL JOIN ile sorgulanır. Ayrık veritabanlarında bu işlem API kompozisyonu (BFF katmanı) veya alan olaylarını (
CustomerUpdatedEvent,OrderCreatedEvent) dinleyen CQRS materyalize görünümleri ile çözülür. - ▸
Çoklu Servis Atomik Yazmaları: Birden fazla servisi kapsayan iş süreçleri (ödeme alma ve stok düşme) standart
BEGIN TRANSACTIONkullanamaz. Ekipler telafi edici işlemlere sahip Saga orkestrasyonu veya koreografisi kurmalıdır. - ▸
Poliglot Veritabanı Tercihi: Her servis kendi veri yapısına en uygun motoru seçebilir (Siparişler için PostgreSQL, Oturumlar için Redis, Sahtecilik analizi için Neo4j, Sepet için DynamoDB).
İnteraktif Konsept Alıştırmaları
2 AlıştırmaMikroservisler arasında paylaşılan bir veritabanı neden kritik bir anti-desen sayılır?
İzole veritabanlarına sahip mikroservisler, cross-database join yapmadan verileri nasıl birleştirir?
Servis Başına Veritabanı ve Ortak Veritabanı Ödünleşimleri — Sıkça Sorulan Sorular
Şirketiniz monolitik bir veritabanını mikroservis veritabanlarına bölmek istiyor. Hangi yetenek kökten KAYBEDİLECEK ve yeniden tasarlanması gerekecektir?
Servisler arası atomik çoklu tablo SQL işlemleri (ACID) ve bildirimsel Yabancı Anahtar (FK) kısıtlamaları. Veritabanı sınırları ayrıldığında tek düğümlü ilişkisel yabancı anahtar bütünlüğü ve ACID kilit mekanizmaları kaybolur; yerini Saga ve olay güdümlü tutarlılık alır.
Bir geliştirici, API yazmaktan kaçınmak için monolit veritabanının salt-okunur bir kopyasını oluşturup 10 mikroservisin tümüne doğrudan SQL erişimi vermeyi öneriyor. Buradaki tehlike nedir?
Şema değişikliklerinin alt servisleri çökertmeye devam ettiği ve servis özerkliğini yok eden bir Dağıtık Monolit yaratır. Doğrudan veritabanı erişimi iş mantığı doğrulamasını baypas eder, iç şemayı dışarı açar ve tüm servisleri ortak tablo yapılarına zincirleyerek dağıtım kilitlenmesi yaratır.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸
Servis başına veritabanı deseni, mikroservislere bağımsız şema evrimi ve hata izolasyonu kazandırırken; etki alanı sınırları arasında ACID işlemlerini, ilişkisel join sorgularını ve yabancı anahtar (FK) kısıtlamalarını feda etmeyi gerektirir.
- ▸
Servis başına veritabanı, her mikroservisin kendi özel veri deposuna sahip olduğu ve diğer servislerin bu tablolara yalnızca yetkili API'ler veya olaylar üzerinden erişebildiği mimari bir desendir.
Yaygın Yanılgılar
- ✗
A servisinin B servisinin veritabanına salt-okunur veritabanı kullanıcısıyla doğrudan bağlanmasına izin vermek.
Karar Kılavuzu & Önceliklendirme
Mikroservisler arasında ortak veritabanı kullanmak, servislerin onlarca ekiple koordinasyon kurmadan bağımsız dağıtılamadığı, ölçeklenemediği 'Dağıtık Monolit' tuzağının en temel kök nedenidir.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL-DOC]Database-per-Service vs Shared Database Trade-offs Specification— TinyCTO Architectural Standards
