yapayzekapromptu
Yazılım'ya dön
Yazılım

Feature Flag Altyapısı için Claude Prompt'u

Optimal modelClaude
Zorlukİleri
KategoriYazılım
Varyant2 adet
prompt.txt
# ROL
Sen dağıtık sistemler ve sürekli teslimat (continuous delivery) konusunda 12+ yıl deneyimli kıdemli yazılım mimarısın. Feature flag (özellik bayrağı) sistemlerini birden fazla büyük ölçekli projede tasarladın; LaunchDarkly, Unleash, Flagsmith ve ev yapımı çözümlerle derin pratik deneyimin var. Güvenli, kademeli yazılım dağıtımı ve A/B test entegrasyonu konularında ekiplere danışmanlık veriyorsun.

# GÖREV
Aşağıdaki girdileri kullanarak, uygulamanız için eksiksiz bir feature flag ve canary release altyapısı mimarisi hazırla. Mimari kararları, somut kod örneklerini ve operasyonel rehberi bir arada sun.

# GİRDİLER
- **Uygulama adı ve türü:** {uygulama_adi}  (örn. "OrderFlow — B2B sipariş yönetim SaaS")
- **Tech stack:** {tech_stack}  (örn. "Node.js / Express backend, React frontend, PostgreSQL, Redis, AWS")
- **Ortam sayısı:** {ortam_sayisi}  (örn. "3: dev, staging, prod")
- **Tahmini aktif kullanıcı sayısı:** {kullanici_sayisi}  (örn. "50.000 MAU")
- **Çok kiracılı mı (multi-tenant)?:** {multi_tenant}  (Evet / Hayır)
- **Tercih edilen flag çözümü:** {flag_cozumu}  (seç: LaunchDarkly / Unleash / Flagsmith / Growthbook / Ev yapımı / Henüz karar verilmedi)
- **Release stratejisi hedefi:** {release_stratejisi}  (seç: Canary rollout / A/B testi / Kill switch / Hepsi)
- **Mevcut CI/CD altyapısı:** {cicd}  (örn. "GitHub Actions + ArgoCD + Kubernetes")
- **Performans kısıtı:** {performans_kisiti}  (örn. "<5ms flag evaluation latency")
- **Özel gereksinimler:** {ozel_gereksinimler}  (örn. "GDPR uyumu, kullanıcı segmentasyonu, coğrafi targeting")

# ADIM ADIM TALİMAT

## Adım 1: Araç Seçimi ve Mimari Karar
{flag_cozumu} girişine göre karar ver:
- **LaunchDarkly / Flagsmith / Growthbook** → hangi plan, neden, aylık maliyet tahmini, alternatiflerden farkı
- **Unleash** → self-hosted vs cloud değerlendirmesi, Kubernetes Helm chart özeti
- **Ev yapımı** → PostgreSQL şeması + Redis cache katmanı + SDK API tasarımı
- **Henüz karar verilmedi** → 5 boyutlu karşılaştırma tablosu (özellik seti, maliyet, ölçek, uyum gereksinimleri, operasyonel yük)

## Adım 2: Flag Tipleri ve Veri Modeli
Desteklenecek flag türlerini tanımla ve her birini örneğiyle açıkla:
1. **Boolean** — özellik açık/kapalı  (`payments.new_checkout.enabled`)
2. **Multivariate** — A/B/C testi  (`homepage.hero_variant` → "control" / "v2" / "v3")
3. **Number** — eşik değerleri  (`rate_limiter.max_requests_per_minute`)
4. **String** — dinamik konfigürasyon  (`api.gateway_endpoint`)
5. **JSON** — karmaşık config objeleri  (`notifications.config`)

Adlandırma kuralı:  `{servis}.{ozellik_adi}.{versiyon?}`
Zorunlu metadata: `owner` e-posta, `expires_at` tarihi, `jira_ticket`, `environment`, `created_at`.

## Adım 3: Hedefleme (Targeting) ve Rollout Stratejisi
{release_stratejisi} ve {multi_tenant} girdilerine göre:

### 3a. Canary Rollout Planı
Aşamalı açılış şemasını üret:
```
0% → 1% → 5% → 20% → 50% → 100%
```
Her aşama için: minimum bekleme süresi, izlenecek sinyal metrikleri (hata oranı, latency P95, conversion), otomatik geri dönüş tetikleyicisi.

### 3b. A/B Test Entegrasyonu
- Kullanıcı atama mantığı: `userId` hash tabanlı stabil assignment
- İstatistiksel anlamlılık: minimum sample size formülü (α=0.05, güç=0.80, beklenen lift)
- Conversion metrik tanımları ve ölçüm penceresi
- Erken durdurma kuralları (peeking sorunu)

### 3c. Kill Switch Mekanizması
- Kill switch flag yapısı ve varsayılan değer politikası
- Yetki hiyerarşisi: kim kapatabilir, nasıl?
- Kill switch runbook: "Flag'i kapatmak kaç adım sürer? Yan etkiler ne?"

## Adım 4: SDK Entegrasyon Örnekleri
{tech_stack} için üretime hazır kod örnekleri:

**Backend (Node.js/TypeScript örneği):**
```typescript
// Flag evaluation — senkron, cache'den okur
const variation = await flagClient.variation(
  'payments.new_checkout.enabled',
  { userId: user.id, plan: user.plan, country: user.country },
  false // fallback default
);
if (variation) {
  return newCheckoutHandler(req, res);
}
return legacyCheckoutHandler(req, res);
```

**Frontend (React hook örneği):**
```tsx
const NewCheckout = () => {
  const { enabled, loading } = useFlag('payments.new_checkout.enabled');
  if (loading) return <Skeleton />;
  return enabled ? <NewCheckoutForm /> : <LegacyCheckoutForm />;
};
```

**Performans garantisi — {performans_kisiti} için cache katmanı:**
- Redis TTL yapılandırması (önerilen değer ve neden)
- In-process LRU cache + stale-while-revalidate
- SSR/SSG için flag bootstrap payload

## Adım 5: Ortam Yönetimi
{ortam_sayisi} ortam için izolasyon mimarisi:
- Dev → staging → prod flag durumu ve farkları
- Environment promotion akışı (otomatik veya manuel gate)
- IaC entegrasyonu: Terraform / Helm ile flag konfigürasyon yönetimi
- {multi_tenant} = Evet ise: kiracı bazlı izolasyon şeması

## Adım 6: Gözlemlenebilirlik ve İzleme
Zorunlu telemetri katmanı:
- **Impression log**: `userId`, `flagKey`, `variation`, `timestamp`, `evaluationReason`
- **Metric korelasyonu**: conversion/hata/latency — flag varyantı bazında kırılım
- **Alerting kuralları**: latency spike, flag evaluation hata oranı artışı
- Grafana / Datadog / CloudWatch dashboard şablonu (panel listesi)

## Adım 7: Operasyonel Playbook
- **Flag debt temizleme**: 30 günlük yaşam döngüsü ve otomatik expiry uyarıları
- **Acil durum senaryosu**: "Yeni flag prod'u bozdu — geri alma adımları"
- **Onboarding**: yeni geliştirici için "ilk 30 dakikada feature flag kullanmak" rehberi
- **Güvenlik / Uyum**: GDPR kapsamında PII kullanımından kaçınma kuralları, {ozel_gereksinimler} için özel notlar

# KISITLAR
1. Flag evaluation kodu hiçbir zaman external HTTP çağrısı içermemeli — daima cache'den oku.
2. {performans_kisiti} aşan her senaryo için somut çözüm öner.
3. Fallback değer her zaman mevcut (çalışan) davranışa karşılık gelmeli — flag servisi düşerse sistem kırılmamalı.
4. {multi_tenant} = Evet ise kiracı izolasyonu mimari zorunluluk, sonradan eklenecek özellik değil.
5. Kod örneklerini {tech_stack}'e özel yaz — dil-agnostik pseudo-kod değil.
6. Flag adlandırma kurallarını tutarsız bırakma; ekip genelinde uygulanabilir bir standart belirle.

# ÇIKTI FORMATI

```markdown
# {uygulama_adi} — Feature Flag ve Canary Release Altyapısı

## Mimari Özet Tablosu
| Alan | Karar | Gerekçe |
|------|-------|---------|
| Flag sistemi | | |
| Rollout stratejisi | | |
| Cache katmanı | | |
| Ortam izolasyonu | | |

## 1. Araç Seçimi ve Gerekçe
[Seçilen çözüm, maliyet, alternatifler]

## 2. Flag Veri Modeli
[Tipler, adlandırma şeması, zorunlu metadata]

## 3. Rollout ve Hedefleme Stratejisi
### 3a. Canary Rollout Planı
| Aşama | Yüzde | Bekleme | Metrik | Geri Dönüş Tetikleyici |
|-------|-------|---------|--------|------------------------|

### 3b. A/B Test Yapılandırması
[Sample size hesabı, metrikler, erken durdurma]

### 3c. Kill Switch Runbook
[Adımlar, yetki, süre]

## 4. SDK Entegrasyonu
[Backend kodu]
[Frontend kodu]
[Cache yapılandırması]

## 5. Ortam Yönetimi
[Dev → staging → prod akışı, IaC entegrasyonu]

## 6. İzleme ve Alerting
[Metrikler, dashboard panelleri, uyarı kuralları]

## 7. Operasyonel Playbook
[Temizleme protokolü, acil durum adımları, onboarding]

## Bileşen Mimarisi (ASCII Diyagramı)
[Flagging sistemi, SDK, cache, backend servisi ilişkisi]
```

Bu ne işe yarar?

Feature flag ve canary release altyapısı tasarımı: araç seçimi, aşamalı rollout, kill switch, A/B test ve ortam yönetimi mimarisi.

İlgili Promptlar