KoderKoder.ai
FiyatlandırmaKurumsalEğitimYatırımcılar için
Giriş YapBaşla

Ürün

FiyatlandırmaKurumsalYatırımcılar için

Kaynaklar

Bize UlaşınDestekEğitimBlog

Yasal

Gizlilik PolitikasıKullanım KoşullarıGüvenlikKabul Edilebilir Kullanım PolitikasıKötüye Kullanımı Bildir

Sosyal

LinkedInTwitter
Koder.ai
Dil

© 2026 Koder.ai. Tüm hakları saklıdır.

Ana Sayfa›Blog›Yapay Zeka Belirsiz İstekleri Üretime Hazır Mimarilere Nasıl Dönüştürür
09 Eki 2025·8 dk

Yapay Zeka Belirsiz İstekleri Üretime Hazır Mimarilere Nasıl Dönüştürür

Yapay zekanın belirsiz istekleri nasıl üretime hazır mimarilere dönüştürebileceğini görün: gereksinimleri çerçeveleme, varsayımları ortaya çıkarma, ödünleşmeleri haritalama ve tasarımları doğrulama.

Yapay Zeka Belirsiz İstekleri Üretime Hazır Mimarilere Nasıl Dönüştürür

"İstekten mimariye" gerçekte ne demek\n\n"Belirsiz bir istek" normal başlangıçtır çünkü çoğu fikir niyet olarak başlar, bir spesifikasyon olarak değil: "Bir müşteri portalı kur", "AI araması ekle" veya "Olayları gerçek zamanlı yayınla." İnsanlar ne elde etmek istediklerini bilirler ama henüz sınırları, riskleri veya uygulanabilirliği sağlayan mühendislik seçimlerini bilmezler.\n\n"İstekten mimariye" niyeti tutarlı bir plana dönüştürme iş akışıdır: ne inşa edilecek, parçalar nasıl uyum sağlar, veri nereden akar ve üretimde çalışması için hangi koşullar sağlanmalı.\n\n### "Üretime hazır mimari" ne demektir\n\nÜretime hazır olmak "diyagramlara sahip olmak" değildir. Tasarımın açıkça ele aldığı şeylerdir:\n\n- Güvenilirlik: ne bozulur, nasıl toparlanır ve yük altında ne olur\n- Güvenlik: erişim nasıl kontrol edilir, gizli bilgiler nerede saklanır ve tehditler nasıl azaltılır\n- Maliyet: harcamayı ne tetikler ve nasıl izlenip kontrol edilir\n- İşletilebilirlik: izleme, yedeklemeler, dağıtımlar ve sabaha karşı arıza ayıklama yöntemleri\n\n### Yapay zeka nerede yardımcı olur — ve nerede yanıltabilir\n\nAI, erken düşünmeyi hızlandırmada güçlüdür: aday mimariler üretmek, yaygın desenleri (kuyruklar, önbellekler, servis sınırları) önermek, eksik fonksiyonel olmayan gereksinimleri yüzeye çıkarmak ve arayüz sözleşmeleri veya kontrol listeleri taslağı hazırlamak.\n\nAI, doğrulayamıyorsa spesifik konularda kendinden emin konuştuğunda yanıltıcı olabilir: bağlam olmadan teknolojiler seçmek, operasyonel karmaşıklığı hafife almak veya yalnızca kurumunuzun bildiği kısıtları atlamak (uyumluluk, mevcut platformlar, ekip becerileri). Çıktıları sorgulanacak teklifler olarak alın, kabul edilecek cevaplar olarak değil.\n\n### Bu yazı neleri kapsar / kapsamaz\n\nBu yazı, istek → gereksinimler → varsayımlar → seçenekler → kararlar akışını takip eden, izlenebilir ödünleşmelerle birlikte uygulanabilir, tekrarlanabilir bir iş akışını anlatır.\n\nBu yazı alan uzmanlığının, detaylı boyutlandırmanın veya bir güvenlik incelemesinin yerine geçmez—ve her istek için tek bir "doğru" mimarinin olduğunu iddia etmez.\n\n## Adım 1: İsteği net bir problem ifadesine dönüştürün\n\nBelirsiz bir istek genellikle hedefleri ("bir dashboard kur"), çözümleri ("microservices kullan") ve görüşleri ("hızlı olsun") karıştırır. Bileşenleri çizmeye başlamadan önce test edip tartışılabilir bir problem ifadesine ihtiyacınız var.\n\n### Problem ifadesi (kim neye ihtiyaç duyuyor ve neden şimdi)\n\nBirincil kullanıcıyı, yapmaya çalıştıkları işi ve aciliyeti adlandıran bir veya iki cümle yazın.\n\nÖrnek: "Müşteri destek yöneticileri, günlük olarak önceliklendirme yapıp bu çeyrekte kaçırılan SLA'ları azaltmak için açık ticket'ların ve SLA riskinin tek bir görünümüne ihtiyaç duyuyor."\n\nEğer istek gerçek bir kullanıcı belirtmiyorsa, birini sorun. Eğer neden şimdi önemli olduğu belirtilmemişse, daha sonra ödünleşmeleri sıralayamazsınız.\n\n### Başarı metrikleri (başarılı olduğunu nasıl anlayacaksınız)\n\n"İyi"yi ölçülebilir sonuçlara dönüştürün. Ürün ve operasyon sinyallerinin bir karışımını tercih edin.\n\n- Ürün: ana görevi tamamlama süresi, benimsenme oranı, hata oranı, dönüşüm, NPS\n- Operasyon: p95 gecikme, kullanılabilirlik hedefi, isteğe düşen maliyet, on-call sayısı/hafta\n\nKüçük bir set seçin (3–5). Çok fazla metrik kafa karıştırır; çok az riskleri gizler.\n\n### Kullanıcı yolculukları ve ana akışlar\n\n"Mutlu yol"u düz bir dille tanımlayın, sonra mimariyi şekillendirecek kenar durumları listeleyin.\n\nMutlu yol örneği: kullanıcı giriş yapar → müşteri arar → mevcut durumu görür → bir alanı günceller → denetim kaydı tutulur.\n\nErken yüzeye çıkarılması gereken kenar durumlar: çevrimdışı/zayıf bağlantı, kısmi izinler, çift kayıtlar, yüksek hacimli importlar, zaman aşımı, tekrar denemeler ve bir bağımlılık kapalıyken ne olduğu.\n\n### Kapsam dışı (tasarım büyümesini önlemek için)\n\nBu sürümde ne inşa etmeyeceğinizi belirtin: henüz desteklemeyeceğiniz entegrasyonlar, gelişmiş analitikler, çok bölgelilik, özel iş akışları veya tam admin araçları. Net sınırlar takvimleri korur ve sonraki "2. Faz" konuşmalarını kolaylaştırır.\n\nBu dört parça yazıldıktan sonra istek paylaşılan bir sözleşmeye dönüşür. AI yardımcı olabilir, ama onu icat etmemeli.\n\n## Adım 2: Gereksinimleri ve kısıtları çıkarın\n\nBelirsiz bir istek genellikle hedefleri ("kolay olsun"), özellikleri ("bildirim gönder") ve tercihleri ("serverless kullan") tek cümlede karıştırır. Bu adım, tasarlayabileceğiniz bir gereksinim listesine ayırır.\n\n### Fonksiyonel gereksinimler (ne yapmalı)\n\nSomut davranışları ve etkileyecekleri hareketli parçaları çıkararak başlayın:\n\n- Özellikler: kullanıcı kaydı/giriş, arama, ödeme, admin paneli, denetim kayıtları\n- Veri: ne saklanır (kullanıcılar, siparişler, olaylar), ne kadar süre saklanır ve kim erişebilir\n- Entegrasyonlar: ödeme sağlayıcı, e-posta/SMS, CRM, analitik, mevcut iç API'ler\n\nİyi bir kontrol: her gereksinim için bir ekran, API endpoint veya arka plan işi gösterebiliyor musunuz?\n\n### Fonksiyonel olmayan gereksinimler (ne kadar iyi yapmalı)\n\nBunlar mimariyi çoğu kişinin düşündüğünden daha çok şekillendirir. Belirsiz sözcükleri ölçülebilir hedeflere çevirin:\n\n- Gecikme: "Sayfalar hızlı açılsın" → "isteklerin %95'i 300ms altında"

SSS

What does “prompt to architecture” mean in practice?

"Prompt to architecture" (istekten mimariye) niyetinizi ("müşteri portalı oluştur") yapılabilir bir plana dönüştürme iş akışıdır: gereksinimler, varsayımlar, aday seçenekler, açık kararlar ve bileşenlerle veri akışlarının uçtan uca görünümü.

AI çıktısını test edip düzenleyebileceğiniz bir öneri olarak ele alın—nihai cevap olarak değil.

What makes an architecture “production-ready” (beyond having diagrams)?

Üretime hazır olmak, tasarımın açıkça şunları kapsadığı anlamına gelir:

  • Güvenilirlik: hata durumları, kurtarma, tekrar denemeler, idempotentlik
  • Güvenlik: kimlik doğrulama/yetkilendirme, gizli bilgilerin yönetimi, en az ayrıcalık, denetlenebilirlik
  • Maliyet: ana maliyet sürücüleri ve kontrol yöntemleri
  • İşletilebilirlik: izleme, uyarılar, yedekleme/geri yükleme, deploy süreçleri ve olayları nasıl debug edeceğiniz

Diyagramlar yardımcı olur ama tanım onlar değildir.

How do I turn a vague prompt into a clear problem statement?

1–2 cümleyle şunu belirtin:

  • Birincil kullanıcı (kim)
  • Yapılacak iş (ne)
  • Neden şimdi (aciliyet/zamanlama)

Eğer istek gerçek bir kullanıcı veya aciliyet belirtmiyorsa, bunları sorun—aksi takdirde ödünleşmeleri sıralayamazsınız.

How should I pick success metrics that actually drive architectural decisions?

Ürün ve operasyon sinyallerini karıştırarak 3–5 ölçülebilir metrik seçin, örnekler:

  • Ürün: görev tamamlama süresi, benimsenme oranı, hata oranı
  • Operasyon: p95 gecikme, kullanılabilirlik hedefi, isteğe düşen maliyet, on-call sayısı/hafta

"Metrik çoğalması"ndan kaçının: çok fazla öncelikleri belirsizleştirir; çok azı riski gizler.

How do I surface assumptions and unknowns before choosing technologies?

Erken varsayımları ortaya çıkarın: trafik, veri kalitesi, kullanıcıların gecikmeye toleransı, on-call desteği. Sonra bunları ayırın:

  • Bilineni: paydaşlardan onaylananlar
  • Bilinmeyen: kararları engelleyen eksik detaylar
  • Araştırma gereken: spike'lar, benchmarklar, tedarikçi/hukuk incelemeleri

Varsayımları açıkça belgeleyin (kim/onayladı/ ne zaman) ki sonra sorgulanıp düzeltilebilsin.

What are good “candidate architectures” to compare early on?

Erken aşamada karşılaştırılabilecek birkaç iyi seçenekle başlayın ve bir varsayılan seçin; ayrıca "ne zaman değiştirilir" koşullarını açıkça yazın, örneğin:

  • Basit monolit + yönetilen servisler: hızlıca ship, en az operasyonel yük
  • Modüler monolit + asenkron işler: tek deploy edilebilir, açık sınırlar, arka plan işleri için kuyruk
  • Seçici servisler: yalnızca izolasyon/ölçek/bağımsız sürüm döngüsü gerekiyorsa

Amaç izlenebilir ödünleşmeler ve tek doğru cevabın olmadığı anlayışıdır.

What data modeling decisions matter most early in architecture?

Çekirdek domain nesnelerini (prompttaki isimler: User, Order, Ticket, Event) adlandırın ve her biri için:

  • Hakikat kaynağı: hangi sistem/görev yazma yetkisine sahip?
How should I plan for third-party failures and rate limits?

Her bağımlılık (ödeme, mesajlaşma, LLM'ler, dahili API'ler) için başarısızlık davranışı tanımlayın:

  • Timeout + retry (backoff/jitter ile)
  • Devre kesiciler ve sınırlı eşzamanlılık
  • Bozulmuş modlar (önbellekten servis, salt okunur, "sonra dene" yanıtları)
  • Net istemci hata sözleşmeleri

Rate limitlerin olduğunu varsayın ve sıçramaların zincirleme arızalara yol açmaması için backpressure tasarlayın.

How do ADRs and “exit ramps” make architecture decisions safer?

Her önemli seçim için kısa bir Architecture Decision Record (ADR) oluşturun:

  • Bağlam: çözmeye çalıştığınız problem ve kısıtlar
  • Karar: seçilen seçenek
  • 2–3 uygun opsiyon
How do I use AI effectively without being misled by confident-sounding outputs?

AI'yi bir genç mimar gibi kullanın: hızlı seçenek üretebilir ama bağlama, kontrolleri ve yönlendirmeye ihtiyaç duyar. Yapmanız gerekenler:

  • AI'ye net bir kutu verin: hedef, kullanıcılar, ölçek, bütçe, deadline, değişmezler (yığın, uyumluluk, hosting)
  • Önce varsayımları + açık soruları listelemesini isteyin
  • 2–3 opsiyon sunmasını ve her kararı gereksinimlere dayandırmasını isteyin

Sonra "eleştir ve iyileştir" döngüleriyle devam edin: "Bu tasarımın kırılgan noktaları neler?" "Hangi gereksinimler karşılanmadı?" AI'nın doğrulayamacağı kesin detaylara karşı dikkatli olun.

İçindekiler
"İstekten mimariye" gerçekte ne demek\n\n"Belirsiz bir istek" normal başlangıçtır çünkü çoğu fikir niyet olarak başlar, bir spesifikasyon olarak değil: "Bir müşteri portalı kur", "AI araması ekle" veya "Olayları gerçek zamanlı yayınla." İnsanlar ne elde etmek istediklerini bilirler ama henüz sınırları, riskleri veya uygulanabilirliği sağlayan mühendislik seçimlerini bilmezler.\n\n"İstekten mimariye" niyeti tutarlı bir plana dönüştürme iş akışıdır: ne inşa edilecek, parçalar nasıl uyum sağlar, veri nereden akar ve üretimde çalışması için hangi koşullar sağlanmalı.\n\n### "Üretime hazır mimari" ne demektir\n\nÜretime hazır olmak "diyagramlara sahip olmak" değildir. Tasarımın açıkça ele aldığı şeylerdir:\n\n- **Güvenilirlik:** ne bozulur, nasıl toparlanır ve yük altında ne olur\n- **Güvenlik:** erişim nasıl kontrol edilir, gizli bilgiler nerede saklanır ve tehditler nasıl azaltılır\n- **Maliyet:** harcamayı ne tetikler ve nasıl izlenip kontrol edilir\n- **İşletilebilirlik:** izleme, yedeklemeler, dağıtımlar ve sabaha karşı arıza ayıklama yöntemleri\n\n### Yapay zeka nerede yardımcı olur — ve nerede yanıltabilir\n\nAI, erken düşünmeyi hızlandırmada güçlüdür: aday mimariler üretmek, yaygın desenleri (kuyruklar, önbellekler, servis sınırları) önermek, eksik fonksiyonel olmayan gereksinimleri yüzeye çıkarmak ve arayüz sözleşmeleri veya kontrol listeleri taslağı hazırlamak.\n\nAI, doğrulayamıyorsa spesifik konularda kendinden emin konuştuğunda yanıltıcı olabilir: bağlam olmadan teknolojiler seçmek, operasyonel karmaşıklığı hafife almak veya yalnızca kurumunuzun bildiği kısıtları atlamak (uyumluluk, mevcut platformlar, ekip becerileri). Çıktıları sorgulanacak teklifler olarak alın, kabul edilecek cevaplar olarak değil.\n\n### Bu yazı neleri kapsar / kapsamaz\n\nBu yazı, istek → gereksinimler → varsayımlar → seçenekler → kararlar akışını takip eden, izlenebilir ödünleşmelerle birlikte uygulanabilir, tekrarlanabilir bir iş akışını anlatır.\n\nBu yazı alan uzmanlığının, detaylı boyutlandırmanın veya bir güvenlik incelemesinin yerine geçmez—ve her istek için tek bir "doğru" mimarinin olduğunu iddia etmez.\n\n## Adım 1: İsteği net bir problem ifadesine dönüştürün\n\nBelirsiz bir istek genellikle hedefleri ("bir dashboard kur"), çözümleri ("microservices kullan") ve görüşleri ("hızlı olsun") karıştırır. Bileşenleri çizmeye başlamadan önce test edip tartışılabilir bir problem ifadesine ihtiyacınız var.\n\n### Problem ifadesi (kim neye ihtiyaç duyuyor ve neden şimdi)\n\nBirincil kullanıcıyı, yapmaya çalıştıkları işi ve aciliyeti adlandıran bir veya iki cümle yazın.\n\nÖrnek: "Müşteri destek yöneticileri, günlük olarak önceliklendirme yapıp bu çeyrekte kaçırılan SLA'ları azaltmak için açık ticket'ların ve SLA riskinin tek bir görünümüne ihtiyaç duyuyor."\n\nEğer istek gerçek bir kullanıcı belirtmiyorsa, birini sorun. Eğer neden şimdi önemli olduğu belirtilmemişse, daha sonra ödünleşmeleri sıralayamazsınız.\n\n### Başarı metrikleri (başarılı olduğunu nasıl anlayacaksınız)\n\n"İyi"yi ölçülebilir sonuçlara dönüştürün. Ürün ve operasyon sinyallerinin bir karışımını tercih edin.\n\n- **Ürün:** ana görevi tamamlama süresi, benimsenme oranı, hata oranı, dönüşüm, NPS\n- **Operasyon:** p95 gecikme, kullanılabilirlik hedefi, isteğe düşen maliyet, on-call sayısı/hafta\n\nKüçük bir set seçin (3–5). Çok fazla metrik kafa karıştırır; çok az riskleri gizler.\n\n### Kullanıcı yolculukları ve ana akışlar\n\n"Mutlu yol"u düz bir dille tanımlayın, sonra mimariyi şekillendirecek kenar durumları listeleyin.\n\nMutlu yol örneği: kullanıcı giriş yapar → müşteri arar → mevcut durumu görür → bir alanı günceller → denetim kaydı tutulur.\n\nErken yüzeye çıkarılması gereken kenar durumlar: çevrimdışı/zayıf bağlantı, kısmi izinler, çift kayıtlar, yüksek hacimli importlar, zaman aşımı, tekrar denemeler ve bir bağımlılık kapalıyken ne olduğu.\n\n### Kapsam dışı (tasarım büyümesini önlemek için)\n\nBu sürümde *ne inşa etmeyeceğinizi* belirtin: henüz desteklemeyeceğiniz entegrasyonlar, gelişmiş analitikler, çok bölgelilik, özel iş akışları veya tam admin araçları. Net sınırlar takvimleri korur ve sonraki "2. Faz" konuşmalarını kolaylaştırır.\n\nBu dört parça yazıldıktan sonra istek paylaşılan bir sözleşmeye dönüşür. AI yardımcı olabilir, ama onu icat etmemeli.\n\n## Adım 2: Gereksinimleri ve kısıtları çıkarın\n\nBelirsiz bir istek genellikle hedefleri ("kolay olsun"), özellikleri ("bildirim gönder") ve tercihleri ("serverless kullan") tek cümlede karıştırır. Bu adım, tasarlayabileceğiniz bir gereksinim listesine ayırır.\n\n### Fonksiyonel gereksinimler (ne yapmalı)\n\nSomut davranışları ve etkileyecekleri hareketli parçaları çıkararak başlayın:\n\n- **Özellikler:** kullanıcı kaydı/giriş, arama, ödeme, admin paneli, denetim kayıtları\n- **Veri:** ne saklanır (kullanıcılar, siparişler, olaylar), ne kadar süre saklanır ve kim erişebilir\n- **Entegrasyonlar:** ödeme sağlayıcı, e-posta/SMS, CRM, analitik, mevcut iç API'ler\n\nİyi bir kontrol: her gereksinim için bir ekran, API endpoint veya arka plan işi gösterebiliyor musunuz?\n\n### Fonksiyonel olmayan gereksinimler (ne kadar iyi yapmalı)\n\nBunlar mimariyi çoğu kişinin düşündüğünden daha çok şekillendirir. Belirsiz sözcükleri ölçülebilir hedeflere çevirin:\n\n- **Gecikme:** "Sayfalar hızlı açılsın" → "isteklerin %95'i 300ms altında"SSS
Paylaş
Koder.ai
Build your own app with Koder today!

The best way to understand the power of Koder is to see it for yourself.

Start FreeBook a Demo
  • Kullanılabilirlik: "Her zaman ulaşılabilir" → "aylık %99.9 kullanılabilirlik"
  • Gizlilik/uyumluluk: "AB müşterilerini ele al" → "GDPR temelleri: silme talepleri, veri ihracı, minimal saklama"\n\n### Kısıtlar (değiştiremeyeceğiniz şeyler)\n\nErken sınırları yakalayın ki ideal ama uygulanamaz bir sistem tasarlamayın:\n\n- Bütçe ve zaman çizelgesi: sabit lansman tarihi, bulut harcama limitleri\n- Ekip becerileri: güçlü Python bilgisi, sınırlı Kubernetes deneyimi\n- Mevcut sistemler: mevcut veritabanı, SSO veya mesajlaşma kullanmak zorunda olma\n\n### Kabul kriterleri sade dille\n\nHerkesin doğrulayabileceği birkaç "tamamlanmış demek…" cümlesi yazın, örnekler:\n\n- "Yeni bir kullanıcı kaydolup e-postasını doğrulayıp 2 dakika içinde giriş yapabilmeli."\n- "Destek, bir siparişi iade edebilmeli ve müşteri 1 dakika içinde onay almalı."\n- "Kişisel veriler talep üzerine silinebilmeli, yedekler dahil 30 gün içinde."\n\nBu gereksinimler ve kısıtlar, bir sonraki adımda karşılaştıracağınız aday mimarilerin girdisi olur.\n\n## Adım 3: Varsayımları ve bilinmeyenleri erken ortaya çıkarın\n\nBelirsiz bir istek nadiren teknolojinin zor olması yüzünden başarısız olur—çoğunlukla herkes eksik detayları sessizce farklı doldurduğu için başarısız olur. Herhangi bir mimari önermeden önce AI'yi, bu sessiz varsayımları ortaya çıkarmak ve gerçeği tahminden ayırmak için kullanın.\n\n### Listelemeniz gereken yaygın gizli varsayımlar\n\nİnsanların genellikle ima ettiği "varsayılanları" yazın:\n\n- Trafik ve büyüme: 50 kullanıcı/gün için mi yoksa 50k eşzamanlı kullanıcı mı tasarlanıyor? Kullanım iniş çıkışlı mı (lansmanlar gibi) yoksa dengeli mi?\n- Veri kalitesi: Gelen veriler temiz ve yapılandırılmış mı yoksa çoğaltmalar, eksik alanlar ve tutarsız formatlarla mı dolu?\n- Kullanıcı davranışı: Kullanıcılar gecikmeye tahammül eder mi? Sıkça tekrar ederler mi? Gerçek zamanlı güncellemeler beklerler mi?\n- Operasyon: Bunu kim destekleyecek? On-call desteği var mı? Hafta sonu kesintileri kabul edilebilir mi?\n\nBu varsayımlar önbellekleme, kuyruklar, depolama, izleme ve maliyet gibi seçimleri güçlü biçimde şekillendirir.\n\n### "Bilinenler" vs "Bilinmeyenler" vs "Araştırma Gerekenler"e bölün\n\nAI'den basit bir tablo (veya üç kısa liste) oluşturmasını isteyin:\n\n- Bilinenler: İstekten veya paydaşlardan doğrulanan gereksinimler\n- Bilinmeyenler: Güvenli kararları engelleyen eksik detaylar\n- Araştırma gerekenler: spike'lar, satıcı kontrolleri, benchmarklar, hukuk incelemesi veya kullanıcı testi gerektiren sorular\n\nBu, AI'nin (ve ekibin) tahminleri gerçekmiş gibi kabul etmesini önler.\n\n### Tasarıma bağlanmadan önce AI'nin sorması gereken sorular\n\nYararlı sorular şunlardır:\n\n- En önemli 3 kullanıcı yolculuğu nedir ve her biri için "yeterince hızlı" ne demek?\n- Hangi veriler saklanmalı, ne kadar süreyle ve kim erişebilir?\n- Hangi başarısızlık modları kabul edilebilir (kısmi kesinti, gecikmeli işlem, salt okunur mod)?\n- Hangi entegrasyonlar mevcut ve bunların rate limitleri ile güvenilirliği nedir?\n- Hangi kısıtlar sabit: bütçe, son teslim, bulut/sağlayıcı, uyumluluk?\n\n### Varsayımları belgeleyin ki sonra sorgulanabilsin\n\nVarsayımları açıkça yazın ("Tepe 2.000 istek/dakika varsayılıyor", "PII mevcut varsayılıyor"). Bunları taslak girdiler olarak ele alın ve idealde her birinin kim tarafından ne zaman onaylandığını bağlayın. Bu, sonraki ödünleşmeleri ve mimari değişiklikleri açıklamayı, savunmayı ve geri almayı kolaylaştırır.\n\n## Adım 4: Tek bir cevap değil, aday mimariler önerin\n\nBelirsiz bir istek nadiren tek bir "doğru" tasarım ima eder. Üretime hazır plana en hızlı ulaşmanın yolu birkaç uygulanabilir seçeneği taslak hâline getirmek, sonra bir varsayılan seçmek ve hangi koşullar altında değiştirileceğini açıkça belirtmektir.\n\n### Seçenek A (varsayılan ilk): Basit monolit + yönetilen servisler\n\nÇoğu erken aşama ürün için, bir deploy edilebilir backend (API + iş mantığı), tek bir veritabanı ve küçük bir yönetilen servis seti (kimlik, e-posta, obje saklama) ile başlamak iyidir. Bu dağıtımı, hata ayıklamayı ve değişiklikleri basit tutar.\n\nBunu seçin: ekip küçükse, gereksinimler hâlâ değişiyorsa ve trafik belirsizse.\n\n### Seçenek B: Standart modüler monolit + asenkron işler\n\nAynı tek deploy edilebilir yapı, ama açık iç modüller (faturalama, kullanıcılar, raporlama) ve uzun süren işlemler için arka plan worker'ı ekleyin (importlar, bildirimler, AI çağrıları). Bir kuyruk ve retry politikaları ekleyin.\n\nBunu seçin: uzun süren işler, periyodik spike'lar veya sahiplik sınırlarının netleşmesi gerektiğinde—ama servisleri ayırmadan.\n\n### Seçenek C: Ölçeklenebilir servisler (sadece gereksinimler bunu gerektiriyorsa)\n\nBazı bileşenleri ayrı servislere ayırın; güçlü bir tetikleyici olduğunda: katı izolasyon (uyumluluk), belirli bir hotspot'un bağımsız ölçeklendirilmesi (ör. medya işleme) veya ayrı sürüm döngüleri.\n\nBunu seçin: belirli yük desenleri, organizasyon sınırları veya risk kısıtları ek operasyonel yükü haklı çıkarıyorsa.\n\n### Seçenekler arasında ne değişir\n\nBu seçenekler boyunca farkları açıkça belirtin:\n\n- Bileşenler: tek API vs API + worker vs birden çok deploy edilebilir\n- Maliyet: daha az parça vs ek kuyruk, izleme ve servisler arası trafik\n- Karmaşıklık: daha basit yerel geliştirme vs daha fazla dağıtım, versiyonlama ve hata modları\n\nİyi bir AI destekli çıktı burada küçük bir karar tablosu olmalı: "Varsayılan = A, arka plan işleri varsa B'ye geç, X metriği/kısıtı varsa C'ye geç." Bu, erken mikroservisleşmeyi önler ve mimariyi gerçek gereksinimlere bağlar.\n\n## Adım 5: Veriyi ve sınırları modelleyin\n\nMimari diye adlandırılan şeyin beklenmedik bir kısmı aslında sistemin verisinin ne olduğu, nerede durduğu ve kim tarafından değiştirilebileceği konusunda anlaşmaktır. Bunu erken modelleyince sonraki adımlar (bileşenler, ara yüzler, ölçekleme, güvenlik) çok daha az tahmine dayalı olur.\n\n### Çekirdek domain nesnelerini tanımlayın (ve kim sahipleniyor)\n\nSistemin etrafında döndüğü birkaç nesneyi isimlendirerek başlayın—çoğunlukla istekte geçen isimler: User, Organization, Subscription, Order, Ticket, Document, Event vb. Her nesne için sahipliği yakalayın:\n\n- Hakikat kaynağı: hangi sistem/servis yazma yetkisine sahip?\n- Okuyucular: kim tüketiyor (diğer servisler, analiz, müşteri destek)?\n- Yaşam döngüsü: oluşturuldu/güncellendi/silindi, artı "soft delete" kuralları\n\nBurada AI faydalıdır: isteğe göre başlangıç bir domain modeli önerebilir, sonra siz gerçek ile ima edileni onaylarsınız.\n\n### Erişim ihtiyaçlarına uygun depolama desenleri seçin\n\nHer nesnenin öncelikle işlemsel (OLTP)—çok sayıda küçük okuma/yazma ve tutarlılık gerektiren—mi yoksa analitik (agregasyonlar, trendler, raporlama) mı olduğunu belirleyin. Bu ihtiyaçları aynı veritabanında karıştırmak genellikle gerilim yaratır.\n\nYaygın bir desen: uygulama için bir OLTP veritabanı ve olaylar veya ihracatlar ile beslenen ayrı bir analitik depo. Önemli olan depolamayı verinin nasıl kullanıldığıyla hizalamaktır, nasıl "hissettiğiyle" değil.\n\n### Verinin uçtan uca akışını planlayın\n\nVerinin sistemde aldığı yolu taslaklayın:\n\n- Alım: API'ler, yüklemeler, webhooks, toplu importlar\n- Dönüşüm: doğrulama, zenginleştirme, çoğaltma temizleme\n- Saklama ve silme: veri ne kadar saklanır ve nasıl kaldırılır\n\n### Veri risklerini erken yüzeye çıkarın\n\nRiskleri açıkça belirtin: PII yönetimi, duplicated kayıtlar, çakışan kaynaklar (iki sistem hakikat olduğunu iddia ediyor), ve belirsiz silme semantiği. Bu riskler sınırları tanımlar: ne içerde kalmalı, ne paylaşılabilir ve hangi olaylar için denetim izleri veya erişim kontrolleri gerekli.\n\n## Adım 6: Bileşenleri ve arayüzleri eşleyin\n\nSınırlar ve veri yerleştirildikten sonra, bunları somut bir bileşen haritasına dönüştürün: ne var, neyi sahipleniyor ve diğerleriyle nasıl konuşuyor. Burası AI'nin "sözle diyagram üretebilen" en faydalı olduğu yer—temiz ayrımları önerebilir ve eksik arayüzleri fark edebilir.\n\n### Modülleri ve sorumlulukları tanımlayın\n\nKüçük bir bileşen seti ve net sahiplik hedefleyin. İyi bir kontrol: "Bu bozulursa, kim düzeltir ve ne değişir?" Örnekler:\n\n- API Gateway / BFF: istek yönlendirme, auth uygulama, rate limitler\n- Core servis(ler): iş kuralları ve iş akışları\n- Veri deposu(lar): kalıcılık ve sorgulama desenleri (sadece "bir veritabanı" demeyin)\n- Asenkron worker'lar: uzun süren işler, retry'ler, zamanlanmış işler\n- Gözlemlenebilirlik: logging, metrikler, tracing (ilk sınıf bileşenler olarak)\n\n### Bileşenlerin nasıl iletişim kuracağını seçin (ve neden)\n\nVarsayılan bir iletişim tarzı seçin ve istisnaları gerekçelendirin:\n\n- REST/HTTP basit request/response ve insan tarafından debug edilebilir akışlar için\n- Events / pub-sub aynı değişikliğe birden çok tüketici tepki verdiğinde\n- Kuyruklar arka plan işleri, spike'ları yumuşatma ve güvenilir retry için\n\nAI, her kullanım durumunu gecikme ve güvenilirlik ihtiyaçlarına göre en basit arayüze eşlemede yardımcı olabilir.\n\n### Harici bağımlılıklar ve hata davranışı\n\nÜçüncü taraf servisleri listeleyin ve bunlar başarısız olduğunda ne olacağını kararlaştırın:\n\n- Zaman aşımı, retry with backoff ve devre kesiciler\n- Bozulmuş mod (önbellekten servis? salt okunur?)\n- Net hata sözleşmeleri (istemcilerin ne bekleyebileceği)\n\n### Entegrasyon haritası (sistemler, API'ler, auth)\n\nKısa bir "entegrasyon tablosu" yazın:\n\n- Payments → Sağlayıcı API (REST), OAuth2 client credentials, idempotency anahtarları\n- Email/SMS → Mesajlaşma API'si (REST), API key, 5xx durumlarında retry kuyruğu\n- Analytics → Olay akışı, servis tokenı, overload durumunda drop politikası\n\nBu harita uygulama ticket'ları ve inceleme tartışmalarının omurgası olur.\n\n## Adım 7: Kodlamadan önce üretim kaygıları için tasarlayın\n\nBir tasarım beyaz tahtada kusursuz görünebilir ama birinci günde üretimde başarısız olabilir. Kod yazmadan önce "üretim sözleşmesini" belirginleştirin: yük altında, arızalarda ve saldırı altında ne olur—ve bunun nasıl fark edileceğini.\n\n### Güvenilirlik: hata yollarını planlayın\n\nSistem bağımlılıkları yavaşladığında veya kapandığında sistemin nasıl davranacağını tanımlayın. Timeout, jitter ile retry, ve açık devre kesici kuralları ekleyin. Operasyonları idempotent yapın (istek ID'leri veya idempotency anahtarları kullanarak).\n\nÜçüncü taraf API'leri çağırıyorsanız rate limitleri varsayın ve backpressure oluşturun: kuyruklar, bounded concurrency ve kademeli bozulma (ör. "daha sonra dene" yanıtı).\n\n### Güvenlik: kim ne yapabilir kararını verin\n\nKimlik doğrulamayı (kullanıcıların kimliğini nasıl ispatladığı) ve yetkilendirmeyi (neye erişebildikleri) belirtin. Sisteme uygun en önemli saldırı senaryolarını yazın: çalınmış tokenlar, açık uçların suistimali, girişler aracılığıyla injection, ayrıcalık yükseltme.\n\nAyrıca gizli bilgileri nasıl yöneteceğinizi tanımlayın: nerede saklanırlar, kim okuyabilir, dönüşüm sıklığı ve denetim izleri.\n\n### Performans: hedefler, hissiyat değil\n\nKapasite ve gecikme hedefleri belirleyin (kabaca bile olsa). Sonra taktikleri seçin: önbellekleme (ne, nerede, TTL), batching chatty çağrılar için, asenkron işler uzun görevler için ve paylaşılan kaynakları korumak üzere limitler.\n\n### Gözlemlenebilirlik: göremediğini düzeltemezsin\n\nYapılandırılmış loglar, ana metrikler (gecikme, hata oranı, kuyruk derinliği), dağıtık izleme sınırları ve temel uyarılar belirleyin. Her uyarıyı bir eyleme bağlayın: kim yanıtlar, ne kontrol eder ve "güvenli mod" nasıl görünür.\n\nBu seçimleri ilk sınıf mimari öğeleri olarak ele alın—endpointler ve veritabanları kadar sistemin şeklini belirlerler.\n\n## Adım 8: Ödünleşmeleri açık ve izlenebilir kılın\n\nMimari tek bir "en iyi" cevap değildir—kısıtlar altında alınmış bir dizi tercihtir. AI burada hızlıca seçenekleri listelemek için kullanışlı olabilir, ama yine de neden bir yolu seçtiğinizi, neyi feda ettiğinizi ve ne zaman değişeceğini gösteren net bir kayda ihtiyacınız var.\n\n### Basit bir ödünleşme tablosu kullanın\n\n| Seçenek | Maliyet | Hızla teslim | Basitlik | Ölçek potansiyeli | Notlar / Ne zaman tekrar gözden geçirilecek |\n|---|---:|---:|---:|---:|---|\n| Yönetilen servisler (DB, kuyruk, auth) | Orta–Yüksek | Yüksek | Yüksek | Yüksek | Sağlayıcı limitleri/özellikleri engellerse tekrar gözden geçir |\n| Kendi barındırdığın temel bileşenler | Düşük–Orta | Düşük–Orta | Düşük | Orta–Yüksek | Ops yükü ekip kapasitesini aşarsa tekrar gözden geçir |\n| Önce monolit | Düşük | Yüksek | Yüksek | Orta | Deploy sıklığı veya ekip büyüdüğünde parçala |\n| Erken mikroservis | Orta–Yüksek | Düşük | Düşük | Yüksek | Sadece bağımsız ölçek/ sahiplik gerekli ise |\n\n### Risk nerede kabul edilir vs. hangi alanlara önlem yatırılır\n\n"Kabul edilebilir arızalar"ı (ör. ara sıra geciken e-postalar) ve "asla arızalanmaması gereken" alanları (ör. ödemeler, veri kaybı) yazın. Pahalı arızaların olduğu yerlere önlemler koyun: yedekler, idempotentlik, rate limitler ve net rollback yolları.\n\n### Ekibinizi etkileyen operasyonel ödünleşmeler\n\nBazı tasarımlar on-call yükünü ve hata ayıklama zorluğunu artırır (daha fazla parça, daha fazla retry, dağıtık loglar). Ekip gerçekliğine uyan seçimleri tercih edin: daha az servis, net gözlemlenebilirlik ve öngörülebilir hata modları.\n\n### Teknoloji ödünleşmeleri: yönetilen vs kendi barındırdığınız\n\nKarar kriterlerini açık yapın: uyumluluk ihtiyaçları, özelleştirme, gecikme ve personel. Eğer maliyet yüzünden kendi barındırmayı seçiyorsanız, not edin: yamalama, yükseltmeler, kapasite planlaması ve olay müdahalesinin gizli maliyeti vardır.\n\n## Adım 9: Kararları, alternatifleri ve geri alınabilirliği kaydedin\n\nHarika mimariler sadece "olmazdan" gelmez—birçok küçük seçimin sonucudur. Bu seçimler sadece sohbet kayıtlarında veya birinin hafızasında kalırsa ekipler tartışmaları tekrarlar, tutarsız gönderir ve gereksinimler değiştiğinde zorlanır.\n\n### Kararları aranabilir kılmak için ADR kullanın\n\nHer önemli seçim için bir Architecture Decision Record (ADR) oluşturun. Kısa ve tutarlı olsun:\n\n- Bağlam: hangi problemi çözdüğünüz ve kısıtlar\n- Karar: ne seçildi\n- Alternatifler: 2–3 uygun seçenek\n- Neden: gerekçe ve ödünleşmeler\n- Sonuçlar: neyi sağlar, neyi sınırlar\n\nAI burada özellikle kullanışlıdır: tartışmalardan seçenekleri özetleyebilir, ödünleşmeleri çıkarabilir ve düzenlenebilir ADR taslakları oluşturabilir.\n\n### Tasarıma “çıkış rampaları” ekleyin\n\nVarsayımlar değişir: trafik hızla artar, uyumluluk sıkılaşır veya bir dış API güvenilmez hale gelir. Her büyük varsayım için bir çıkış rampası ekleyin:\n\n- "Eğer X requests/sec'i aşarsak, tek DB'den read replica'lara geç"\n- "Eğer tedarikçi API SLA'sı Y'nin altına düşerse, kuyruk + retry worker ekle"\n\nBu, gelecekteki değişimi yangın söndürme yerine planlı bir harekete çevirir.\n\n### Riskli seçimlere kanıt noktaları ve karar versiyonlama ekleyin\n\nRiskli seçimlere test edilebilir kilometre taşları ekleyin: spike'lar, benchmarklar, küçük prototipler veya load testleri. Beklenen sonuçları ve başarı kriterlerini kaydedin.\n\nSon olarak, ADR'leri gereksinimler evrildikçe sürümlendirerek tutun. Tarihi üzerine yazmayın—güncellemeleri ekleyin ki neyin, ne zaman ve neden değiştiğini izleyebilin. Hafif bir yapı için dahili /blog/adr-template gibi bir şablona bağlanın.\n\n## Adım 10: İncelemeler ve kanıtla mimariyi doğrulayın\n\nTaslak mimari diyagram temiz göründüğünde "tamam" sayılmaz. İnşa edecek, güvenliğini sağlayacak, çalıştıracak ve ödeyecek kişiler bunun işe yaradığı konusunda hemfikir olmalı—ve zorlu parçaları destekleyecek kanıtlara sahip olmalısınız.\n\n### Odaklanmış bir mimari inceleme yapın\n\nKısa bir kontrol listesi kullanarak önemli soruları erken yüzeye çıkarın:\n\n- Güvenlik: kimlik/doğrulama modeli, gizli yönetimi, en az ayrıcalık, denetim kayıtları\n- Gizlilik: veri sınıflandırması, saklama, erişim kontrolleri, PII akış haritalaması, silme talepleri\n- Hata modları: bozulmuş davranış, retry ve backoff, idempotentlik, dead-letter kuyrukları, rate limitler\n- Operasyonel hazır olma: izleme, uyarılar, runbook'lar, on-call sahipliği, yedek/geri yükleme\n\nÇıktıyı somut tutun: "Ne yapacağız?" ve "Kim sahipleniyor?" gibi, genel niyetler değil.\n\n### Sayılarla doğrulayın (aralıklar, hayal değil)\n\nTek bir throughput tahmini yerine, belirsizliği yansıtan yük ve maliyet aralıkları üretin:\n\n- Trafik: P50 / P95 istek/saniye (ör. tipik 50–200 RPS, pik 500–1.000 RPS)\n- Depolama büyümesi: aylık aralık + saklama varsayımları\n- Maliyet sürücüleri: model/API kullanımı, compute autoscaling, veri çıkışı, yönetilen DB'ler\n\nAI'den matematiğini ve varsayımlarını göstermesini isteyin, sonra mevcut analitikler veya benzer sistemlerle mantıklı olup olmadığını kontrol edin.\n\n### Bağımlılık ve tedarikçi riskini değerlendirin\n\nKritik bağımlılıkları listeleyin (LLM sağlayıcısı, vektör DB, kuyruk, auth servisi). Her biri için yakalayın:\n\n- Kullanılamazsa ne kırılır?\n- Sağlayıcı değiştirmek ne kadar zor?\n- Sözleşmesel, bölgesel veya uyumluluk kısıtları var mı?\n\n### İnsan onayı noktalarını tanımlayın\n\nİncelemeleri açıkça yapın, ima edilmesin:\n\n- Ürün: kullanıcı akışları, SLA'lar, kapsam sınırları\n- Güvenlik/Gizlilik: tehdit model çıktılarına göre onaylar, veri işleme onayları\n- Operasyon/SRE: gözlemlenebilirlik planı, olay yanıtı, kapasite varsayımları\n- Mühendislik: arayüzler, kilometre taşları, migration planı\n\nAnlaşmazlıklar kalırsa, bunları karar-verilecek olarak kaydedin, sahip ve tarihle—sonra netlikle ilerleyin.\n\n## Tasarım sırasında AI ile nasıl etkili işbirliği yapılır\n\nAI, iyi bağlam, kontroller ve yönlendirme sağlandığında güçlü bir tasarım ortağı olabilir: hızlı seçenek üretebilir ama net bağlama ihtiyaç duyar.\n\n### Varsayımları ve kısıtları açığa çıkaran prompt'lar yazın\n\nAI'ye bir "kutu" verin: iş hedefi, kullanıcılar, ölçek, bütçe, deadline ve değişmezler (teknoloji yığını, uyumluluk, barındırma). Sonra ondan önce varsayımları ve açık soruları listelemesini isteyin ve ardından çözümler önersin.\n\nBasit bir kural: bir kısıt önemliyse açıkça belirtin—modelin onun çıkarım yapmasını beklemeyin.\n\n### Vibe-coding tarzı platformların nerede faydası olur\n\n"Mimari plan"dan "çalışan sistem"e geçerken kararların kaybolmaması için bir iş akışı aracı önemlidir. Koder.ai gibi platformlar faydalı olabilir çünkü aynı sohbet hem gereksinimleri netleştirip hem de uygulamaya geçerken bu kısıtları taşıyabilir: planlama modu, tekrarlanabilir iterasyonlar ve hazır olduğunuzda kaynak kodu dışa aktarma imkanı.\n\nBu, mimari incelemeleri ortadan kaldırmaz—aksi takdirde varsayımları ve fonksiyonel olmayan gereksinimleri belgeleme standardını yükseltir—ama tekliften çalışır bir uygulamaya hızlı geçişi sağlar.\n\n### Tekrar kullanılabilir prompt şablonları\n\nYapıyı üreten kısa şablonlar kullanın:\n\ntext\nYou are helping design a system.\nContext: <1–3 paragraphs>\nConstraints: <bullets>\nNon-functional requirements: <latency, availability, security, cost>\nDeliverables:\n1) Assumptions + open questions\n2) 2–3 candidate architectures with pros/cons\n3) Key tradeoffs (what we gain/lose)\n4) Draft ADRs (decision, alternatives, rationale, risks)\n\n\n(Kod bloğu içeriğini olduğu gibi koruyun; çevirilmedi.)\n\n### "Eleştir ve iyileştir" döngüleriyle yineleyin\n\nİlk geçişin ardından hemen bir eleştiri isteyin:\n\n- "Bu tasarımda kırılgan veya riskli olan ne?"\n- "Hangi gereksinimler henüz karşılanmamış?"\n- "Yarım zamanımız olsaydı neyi basitleştirirdin?"\n\nBu, modelin erken tek bir yola kilitlenmesini engeller.\n\n### Yaygın başarısızlık modlarına dikkat edin\n\nAI kendinden emin konuşurken yanlış olabilir. Ortak sorunlar şunlardır:\n\n- Üretilmiş servisler/özellikler (halüsinasyon)—belgeler veya belirsizlik göstergesi isteyin\n- Kısıtları görmezden gelme (maliyet, veri yeri, ekip becerisi)—her tasarım seçimini bir gereksinime dayandırmasını isteyin\n- Aşırı mühendislik—"en küçük uygulanabilir mimari" seçeneğini zorlayın\n\nİsterseniz çıktıları hafif ADR'ler olarak yakalayıp repo yanında saklayabilirsiniz (bkz. blog/architecture-decision-records).\n\n## Mini yürüyüş: bulanık bir isteği hazır-inşa planına çevirmek\n\nBulanık istek: "Bir teslimat gecikecekse müşterileri uyaran bir sistem kur."\n\n### 1) Bunu gereksinimlere çevirin\n\nAI bunu somut ihtiyaçlara dönüştürmede yardımcı olur:\n\n- Kullanıcılar: operasyon ekibi, son müşteriler\n- Çekirdek akış: gönderi durumu al → gecikme riski tespit et → bildirim gönder → sonuçları takip et\n- Fonksiyonel olmayan: durum değişikliğinden sonra 2 dakika içinde uyarı, %99.9 kullanılabilirlik, anlaşmazlıklar için denetim kaydı\n\n### 2) Mimarini tersine çevirebilecek varsayımlar\n\nErken iki soru genellikle tasarımı tersine çevirir:\n\n- Varsayım A: durum güncellemeleri taşıyıcılardan gerçek zamanlı geliyor (webhook). Doğruysa, olay tabanlı işleme uygundur.\n- Varsayım B: güncellemeler her 15 dakikada bir polled ediliyor. Doğruysa, zamanlama, rate limit yönetimi gerekir ve "2 dakika" SLA'sı girişleri yeniden görüşmeden imkansız olabilir.\n\nBunları yazmak, yanlış şeyi hızla inşa etmeyi engeller.\n\n### 3) Seçenekler → ödünleşme çağrısı\n\nAI aday mimariler önerir:\n\n- Seçenek 1: Senkron API: carrier webhook → gecikme skorlayan servis → bildirim servisi
    • Artıları: basit, daha az parça
    • Eksileri: webhook timeout'ları güncellemelerin kaybolmasına neden olabilir; spike'lar skorlama servisini aşırı yükleyebilir\n\n- Seçenek 2: Kuyruk tabanlı: webhook → olayı kuyruğa al → worker'lar gecikmeyi skorlar → bildirimler
    • Artıları: dalgalanmaları emer, güvenli retry, daha iyi gözlemlenebilirlik\n - Eksileri: daha fazla bileşen, sonuçta tutarlılık (eventual consistency)\n\nÖdünleşme kararı: taşıyıcı güvenilirliği ve trafik spike'ları riskliyse kuyruk tabanlı seçin; hacim düşük ve taşıyıcı SLA'ları güçlü ise senkron tercih edilebilir.\n\n### 4) Nihai plan ve teslimatlar\n\nİnşa edilebilir kılacak teslimatlar:\n\n- Bağlam ve akış diyagramları\n- Veri modeli + olay şeması\n- Kuyruk vs senkron seçimini belgeleyen ADR'ler\n- Runbook'lar (hata modları, retry'ler, on-call kontrolleri)\n- Backlog epikleri (taşıyıcı entegrasyonu, skorlama kuralları, bildirim şablonları, izleme)
  • Okuyucular: kimler tüketiyor?
  • Yaşam döngüsü: oluşturma/güncelleme/silme, soft-delete kuralları
  • Daha sonra depolamayı kullanım biçimine göre (OLTP vs analitik) eşleştirin ve uçtan uca veri akışını çizin (ingestion → doğrulama/zenginleştirme → saklama/silme).

    Alternatifler:
  • Neden: gerekçe ve ödünleşmeler
  • Sonuçlar: neyi sağlıyor/neyi kısıtlıyor
  • Ayrıca her ana varsayım için tetikleyiciye bağlı "çıkış rampaları" planlayın (ör. X RPS'yi aşarsak read replica ekle). ADR'leri sürümlü tutun ve arşivleyin; hafif bir şablon için blog/adr-template gibi bir iç referans kullanabilirsiniz.