İçeriğe atla
Şimdi yükleniyor
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Veri & Analitik
  • Azure Cosmos DB Design Patterns: Çalışan Örnekler
Bulut Altyapı DevOps Veri & Analitik Azure Cosmos DB, Change Feed, Distributed Lock, Patch API, Transactional Outbox A.KILIÇ 26/07/2026 0 Yorumlar

Azure Cosmos DB Design Patterns: Çalışan Örnekler

Azure Cosmos DB Design Patterns: Çalışan Örnekler
Ana Sayfa › Bulut Altyapı › Azure Cosmos DB Design Patterns: Çalışan Örnekler
📑 İçindekiler
  1. Deponun Felsefesi: Okumak Değil, Görmek
  2. Yeni Eklenen Beş Desen
  3. 1. Vector Search
  4. 2. Loop-Safe Change Feed
  5. 3. Hierarchical Partition Key
  6. 4. Transactional Outbox
  7. 5. Patch API (Partial Document Update)
  8. Baştan Yazılan Distributed Lock Örneği
  9. Kaputun Altındaki Kalite İyileştirmeleri
  10. Kısa Yoldan Deneme
  11. İlgili İçerikler
  12. Kaynaklar ve İleri Okuma
⏱️ 4 dk okuma📅 26 Temmuz 2026👁️ görüntülenme

Azure Cosmos DB gibi NoSQL veritabanlarında iyi bir veri modeli, çoğu zaman birkaç temel desenin doğru uygulanmasına bağlıdır: bölümlemeyi (partitioning) nasıl kurduğunuz, sürüm yönetimini nasıl ele aldığınız, işi nasıl dağıttığınız ve eş zamanlı yazıcıların birbirine nasıl çarpmadığı. Microsoft’un yakın zamanda büyük bir güncelleme aldığı Azure Cosmos DB Design Patterns deposu, tam olarak bu soruların üzerine gidiyor. Her deseni okumak yerine çalıştırıp izlemenizi sağlıyor.

Deponun Felsefesi: Okumak Değil, Görmek

Klasik desen kataloglarının aksine bu depoda her desen; küçük, odaklı ve çalıştırılabilir bir örnek olarak geliyor. Her örnekte interaktif bir Blazor tabanlı web arayüzü var. Yani dağıtık bir kilidin fencing token ile nasıl çalıştığını yalnızca okumuyor; birkaç worker başlatıp aralarındaki yarışı canlı izleyebiliyor, kilidi tutan işlemi çökertip TTL üzerinden otomatik release’i gözlemleyebiliyorsunuz.

Depo üç temel prensip üzerine kurulu:

  • Emulator öncelikli: Her örnek, Azure Cosmos DB Linux (vNext) emülatörü üzerinde tamamen yerelde çalışıyor. Abonelik, hesap veya anahtar gerekmiyor; docker compose up -d ve dotnet run yeterli.
  • Her desen için interaktif web arayüzü: Soyut kavramlar, tıklanabilir ve kırılabilir bir yüzeyde somutlaşıyor. “Neden önemli” notları sayfada yer alıyor.
  • Güvenli ve opsiyonel bulut: Örneği Azure’a taşımak istediğinizde, Azure Developer CLI (azd) şablonu ile Microsoft Entra ID ve managed identity temelli, keyless bir dağıtım tek komutla kuruluyor.

Yeni Eklenen Beş Desen

1. Vector Search

Azure Cosmos DB’nin yerleşik vektör indeksleme özelliği ve VectorDistance() fonksiyonu ile operasyonel veri üzerinde anlamsal arama kurmayı gösteriyor. Örneğin ayırt edici tarafı, metinleri küçük bir yerel model ile gömüyor olması: API anahtarı ya da harici servis gerekmiyor. Bu sayede embedding kullanan bir uygulamayı, foundation model dağıtmadan veya GitHub secrets içine anahtar koymadan CI/CD sürecine dahil edebiliyorsunuz.

2. Loop-Safe Change Feed

Change feed ile bir dokümandan değer türetip aynı dokümana geri yazdığınızda, yazma işleminin feed’i tekrar tetiklemesi klasik bir tuzaktır. Bu örnek standart çözümü uyguluyor: kaynak alanların bir hash‘i saklanıyor, hash değişmediyse gelen değişiklik atlanıyor. Böylece gerçek bir düzenleme başına tam olarak bir zenginleştirme ve bir “echo” atlaması oluyor; döngü sınırlı kalıyor. Arayüzde her dokümana metinden türetilmiş bir identicon üretiliyor ve “zenginleştirme yazma” ile “atlanan echo” sayaçları birlikte artıyor; bu da döngü güvenliğini görünür kılıyor.

3. Hierarchical Partition Key

Tek bir bölüm anahtarı yetmediğinde, hiyerarşik (alt) bölümleme veriyi birden fazla anahtar seviyesine dağıtırken ilişkili öğeleri bir arada tutmayı sağlıyor. Örnek gerçekçi bir çok kiracılı (multi-tenant) modeli işliyor ve doğru bölümleme stratejisinin maliyet ile performansa etkisini gösteriyor.

4. Transactional Outbox

Bir sipariş oluşturmak hem durumu değiştirmeyi hem de başka sistemlerin tükettiği bir olayı yayımlamayı gerektirir. Bunları iki ayrı yazma ile yapmak “dual-write” problemidir; arada bir çökme olursa olay kaybolur. Bu örnekte sipariş ve olay tek bir atomik TransactionalBatch içinde yazılıyor, ardından olay change feed üzerinden aktarılıyor. Uygulamanın commit’ten hemen sonra ölmesi durumunda bile olay kaybolmuyor. Arayüzdeki bir “crash-toggle” alanı ile naif yaklaşımın olay kaybettiğini, outbox’ın ise kaybetmediğini karşılaştırabiliyorsunuz.

5. Patch API (Partial Document Update)

Tek bir alanı güncellemek genellikle “read-modify-write” gerektirir: dokümanın tamamını okuyup değiştirip yeniden yazmak. Patch API ise yalnızca yapılacak işlemi gönderir; daha ucuz, düşük gecikmeli ve farklı servisler farklı alanları güncellediğinde kayıp güncellemeye izin vermez. Örnek, üç yollu bir eş zamanlılık yarışını emülatör üzerinde ölçümlerle karşılaştırıyor:

Yaklaşım Sonuç Çakışma RU
Read-modify-write, ETag yok Bir güncelleme kayboluyor 0 4
Read-modify-write + ETag Yeniden okuma + retry sonrası doğru 1 6
Patch Doğru 0 2

Buradaki dürüst çıkarım şu: ETag, read-modify-write’ı doğru hale getirir; ama dokümanın tamamını koruduğu için farklı alanlara dokunan iki servi hâlâ gereksiz bir 412 çakışmasıyla karşılaşır ve retry maliyeti öder. Patch bu sorunu tamamen ortadan kaldırıyor.

Baştan Yazılan Distributed Lock Örneği

Distributed Lock deseni depoda zaten vardı, ancak bu döngüde tümüyle yeniden yazıldı ve canlı bir web playground kazandı. “Görerek anlama” felsefesini en iyi bu örnek özetliyor: gördüğünüz her acquire, renewal ve release işlemi Azure Cosmos DB üzerinde gerçek bir operasyon.

Aynı anda yalnızca tek worker kilidi tutuyor. Kilidi tutan, bir fencing token taşıyor; korunan kaynak yalnızca güncel token’ı kabul ediyor, dolayısıyla eski/stale bir yazıcının güncellemeleri reddediliyor. Kilit tutucusu çökerse TTL üzerinden lease otomatik serbest kalıyor; deadlock olmuyor. Bir worker’ın “Work” süresini TTL’den uzun tutup auto-renew’in kirayı canlı tuttuğunu; auto-renew’i kapatıp lease’in iş ortasında sona erdiğini, başka bir worker’ın devraldığını ve eski holder’ın yazmalarının fencing token tarafından reddedildiğini tarayıcıda gözlemleyebiliyorsunuz.

Kaputun Altındaki Kalite İyileştirmeleri

Yeni desenlerle birlikte deponun altyapısı da güncellendi:

  • Her örnekte .NET 10 kullanılıyor.
  • CI üzerinde emülatör tabanlı entegrasyon testleri çalışıyor. Test seti her pull request’te Cosmos DB Linux emülatörüne karşı, secret olmadan koşuyor; yani desenlerin gerçekten çalıştığı doğrulanmış oluyor.
  • Her örnek için keylessazd dağıtımı: managed identity, local key auth kapalı, hassas veri saklanmıyor.
  • README’ler birleşik ve sadeleştirilmiş bir şablona geçti: kodu al → konfigüre et → yerelde çalıştır → isteğe bağlı olarak dağıt. Tekrar eden portal talimatları yerine ortak bir kurulum kılavuzuna bağlanıyor.

Kısa Yoldan Deneme

git clone https://github.com/Azure-Samples/cosmos-db-design-patterns.git
cd cosmos-db-design-patterns
docker compose up -d
# yerel emülatörü başlatır
cd loop-safe-change-feed/source/Website
dotnet run
# yazdırılan URL'i açın

Herhangi bir desen klasörünü seçip web arayüzünü çalıştırabilir, tıklayarak deneyebilirsiniz. Bölümleme stratejisi belirlerken, güvenilir olay yayınlama akışları kurarken veya vektör aramaya yönelirken, gerçek bir uygulamaya geçmeden önce davranışı görebileceğiniz küçük ve dürüst örnekler artık elinizin altında.

İlgili İçerikler

  • Azure Cosmos DB Shell Public Preview: CLI’a AI Geldi
  • Eve + Azure Cosmos DB: Unutmayan Ajan Nasıl Kurulur
  • Azure Cosmos DB’ye Immutable Backup Geldi: Ne Değişiyor?

Kaynaklar ve İleri Okuma

  • devblogs.microsoft.com
  • devblogs.microsoft.com
  • devblogs.microsoft.com
  • devblogs.microsoft.com
  • Orijinal duyuru: See our new Azure Cosmos DB Design Patterns (Mark Brown)
  • Azure-Samples/cosmos-db-design-patterns GitHub deposu
  • Azure Cosmos DB Linux (vNext) Emulator dokümantasyonu
  • Azure Cosmos DB Vector Search
  • Hierarchical Partition Keys
  • Partial Document Update (Patch API)
  • Azure Cosmos DB vNext Emulator: Yerelde Gerçek Gibi Test Etmek
  • Azure Cosmos DB’de Silinenleri Görmek: Change Feed’in Sessiz Gücü
  • Azure Cosmos DB’de Partition Key Değiştirmek: Artık Daha Az Acı Veriyor
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

VSTest Newtonsoft.Json Bağımlılığını Atıyor: Ne Değişiyor?
VSTest Newtonsoft.Json Bağımlılığını Atıyor: Ne Değişiyor?2 May 2026
AI Maliyet Optimizasyonu: ROI'yi Gerçekten Artırmanın Yolu
AI Maliyet Optimizasyonu: ROI'yi Gerçekten Artırmanın Yolu20 Nis 2026
RDBMS'ten Cosmos DB'ye Geçiş: AI Asistanı Ne Kadar İşe Yarar?
RDBMS'ten Cosmos DB'ye Geçiş: AI Asistanı Ne Kadar İşe Yarar?18 Haz 2026
Copilot Autofix Azure DevOps'ta: Alert Yığını Bitiyor mu?
Copilot Autofix Azure DevOps'ta: Alert Yığını Bitiyor mu?15 Haz 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket Azure Cosmos DB Change Feed Distributed Lock Patch API Transactional Outbox
A.KILIÇ

Microsoft Azure Çözüm Uzmanı | Bulut Bilişim, Yapay Zekâ, DevOps ve Kurumsal Güvenlik alanlarında 15+ yıl deneyim. Azure, Kubernetes, AI/ML ve modern altyapı mimarileri üzerine yazılar yazıyorum.

view all posts
Önceki yazı

TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız

İlginizi Çekebilir

TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız
A.KILIÇ 0

TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız

25/07/2026
Microsoft Build of OpenJDK Temmuz 2026 Güncellemesi
A.KILIÇ 0

Microsoft Build of OpenJDK Temmuz 2026 Güncellemesi

25/07/2026
AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI
A.KILIÇ 0

AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI

24/07/2026

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Azure Cosmos DB Design Patterns: Çalışan Örnekler
    26/07/2026 Azure Cosmos DB Design Patterns: Çalışan Örnekler
  • TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız
    25/07/2026 TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız
  • GitHub Mobile'da Actions Hatalarını Copilot ile Tek
    25/07/2026 GitHub Mobile’da Actions Hatalarını Copilot ile Tek
  • Microsoft Agent Framework için Cosmos DB Tabanlı Bellek
    25/07/2026 Microsoft Agent Framework için Cosmos DB Tabanlı Bellek
  • Microsoft Build of OpenJDK Temmuz 2026 Güncellemesi
    25/07/2026 Microsoft Build of OpenJDK Temmuz 2026 Güncellemesi
  • Veri Merkezi Güvenilirliği
    09/03/2026 Azure’da Kesintisiz Çalışma: Güvenilirlik ve Kurtarma
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
    30/04/2026 Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
  • Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
    11/04/2026 Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
  • GitHub Copilot Kodlama Ajanı ile Azure’u Birleştirmek: Yeni azd Uzantısıyla Sıkıcı Kurulumlara Elveda
    18/03/2026 GitHub Copilot Kodlama Ajanı ile Azure’u Birleştirmek: Yeni azd Uzantısıyla Sıkıcı Kurulumlara Elveda
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

SİZİN İÇİN DERLEDİK

Azure Cosmos DB Design Patterns: Çalışan Örnekler
Bulut Altyapı DevOps Veri & Analitik

Azure Cosmos DB Design Patterns: Çalışan Örnekler

26/07/2026 A.KILIÇ
TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız
Bulut Altyapı Geliştirici Araçları

TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız

25/07/2026 A.KILIÇ
GitHub Mobile'da Actions Hatalarını Copilot ile Tek
Geliştirici Araçları Microsoft Azure Yapay Zeka

GitHub Mobile’da Actions Hatalarını Copilot ile Tek

25/07/2026 A.KILIÇ
Microsoft Agent Framework için Cosmos DB Tabanlı Bellek
Geliştirici Araçları Microsoft Azure Yapay Zeka

Microsoft Agent Framework için Cosmos DB Tabanlı Bellek

25/07/2026 A.KILIÇ
Microsoft Build of OpenJDK Temmuz 2026 Güncellemesi
Bulut Altyapı Güvenlik & Kimlik Microsoft Azure

Microsoft Build of OpenJDK Temmuz 2026 Güncellemesi

25/07/2026 A.KILIÇ
AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI
Bulut Altyapı Geliştirici Araçları Yapay Zeka

AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI

24/07/2026 A.KILIÇ
Claude Opus 5 GitHub Copilot'ta Kullanıma Sunuldu
Bulut Altyapı Geliştirici Araçları Yapay Zeka

Claude Opus 5 GitHub Copilot’ta Kullanıma Sunuldu

24/07/2026 A.KILIÇ
GitHub MCP Server Yeni MCP Spesifikasyonunu Destekliyor
Bulut Altyapı Geliştirici Araçları Yapay Zeka

GitHub MCP Server Yeni MCP Spesifikasyonunu Destekliyor

24/07/2026 A.KILIÇ
Announcing etcd 3.7.0-beta.0
Bulut Altyapı Geliştirici Araçları Konteyner & Kubernetes

Announcing etcd 3.7.0-beta.0

24/07/2026 A.KILIÇ
Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML'da
DevOps Geliştirici Araçları Microsoft Azure Yapay Zeka

Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML’da

24/07/2026 A.KILIÇ
Linear'da Copilot Cloud Agent Genel Kullanıma Açıldı
Bulut Altyapı Geliştirici Araçları Yapay Zeka

Linear’da Copilot Cloud Agent Genel Kullanıma Açıldı

23/07/2026 A.KILIÇ
Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme
Bulut Altyapı DevOps Geliştirici Araçları

Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme

23/07/2026 A.KILIÇ

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları Azure Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL açık kaynak bulut bilişim C++ CI/CD copilot Copilot CLI DevOps DevSecOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu Microsoft Agent Framework Microsoft Azure Microsoft Foundry OpenAI otomasyon performans Pull Request Python RAG SEO uyumlu verimlilik veri yönetimi Visual Studio VS Code yapay zeka yapay zeka ajanları Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 301 yazı 🏗️ Bulut Altyapı 256 yazı 🤖 Yapay Zeka 218 yazı 🔧 DevOps 175 yazı ☁️ Microsoft Azure 169 yazı 🔒 Güvenlik & Kimlik 154 yazı 🏢 Kurumsal Teknoloji 64 yazı 📊 Veri & Analitik 55 yazı 🐳 Konteyner & Kubernetes 44 yazı 📧 Microsoft 365 19 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← TypeScript 7.0 Yayınlandı: Go ...
    →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS