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

Kafka ile Event-Driven Mimari için Claude Promptu

Optimal modelClaude
Zorlukİleri
KategoriYazılım
Varyant2 adet
prompt.txt
Sen deneyimli bir dağıtık sistemler mimarısın. {sistem_adi} projesinin {kullanim_alani} alanında event-driven (olay güdümlü) bir mimari tasarlamalısın.

## Sistem Parametreleri
- **Sistem Adı:** {sistem_adi}
- **Kullanım Alanı / Domain:** {kullanim_alani}
- **Beklenen Peak Yük:** {beklenen_islem_hacmi} mesaj/saniye
- **Kritiklik Seviyesi:** {kritiklik_seviyesi} (düşük / orta / yüksek / kritik)
- **Geliştirici Ekip Büyüklüğü:** {ekip_buyuklugu} kişi
- **Mevcut Teknoloji Yığını:** {teknoloji_yigini}

## Adım 1 — Domain Event Kataloğu
{kullanim_alani} için tüm domain event'lerini tanımla:
- Her event'i şu formatta adlandır: [Kaynak][Eylem]Event (örn: OrderPlacedEvent, PaymentFailedEvent)
- Event türlerini ayır: Command Events (tetikleyici) / Domain Events (sonuç) / Integration Events (servisler arası)
- Event granülaritesini dengele: ne çok ince (chatty) ne çok kaba (bloated)

## Adım 2 — Mesaj Broker Seçimi
Aşağıdaki broker'ları {beklenen_islem_hacmi} hacmi ve {kritiklik_seviyesi} kritikliği göz önünde bulundurarak karşılaştır ve birini öner:

| Kriter | Apache Kafka | RabbitMQ | AWS SQS/SNS | Redis Streams |
|--------|-------------|----------|-------------|---------------|
| Throughput | Çok yüksek | Yüksek | Orta | Yüksek |
| Gecikme | Düşük | Çok düşük | Orta | Çok düşük |
| Kalıcılık | Log tabanlı | İsteğe bağlı | Yönetilen | İsteğe bağlı |
| Yönetim Karmaşıklığı | Yüksek | Orta | Düşük | Düşük |

**Seçim gerekçeni** şu başlıklara göre yaz: yük kapasitesi, takım operasyonel hazırlığı, maliyet, lock-in riski.

## Adım 3 — Event Schema Tasarımı
Katalogdaki ilk 3 kritik event için tam JSON Schema üret. Her event şu temel yapıyı içermeli:

```json
{
  "eventId": "<uuid-v4>",
  "eventType": "string (örn: OrderPlacedEvent)",
  "version": "string (semver, örn: 1.0.0)",
  "timestamp": "string (ISO 8601)",
  "source": "string (yayıncı servis adı)",
  "correlationId": "<uuid — işlem zinciri takibi>",
  "causationId": "<uuid — tetikleyen event id>",
  "payload": {}
}
```

Schema Registry kullanarak backward/forward uyumluluk stratejisini açıkla.

## Adım 4 — Producer / Consumer Mimarisi
{teknoloji_yigini} için şunları yaz:
1. **Producer Kodu** — event üretme ve serileştirme (hata yönetimi dahil)
2. **Consumer Kodu** — idempotent işleme (duplicate message koruması, veritabanında işlenmiş eventId kontrolü)
3. **Dead Letter Queue (DLQ)** — başarısız mesaj stratejisi: retry politikası (exponential backoff), DLQ'dan manuel/otomatik yeniden işleme akışı
4. **Outbox Pattern** — DB işlemi ve mesaj kuyruğu arasında atomik tutarlılık (2-phase commit yerine)

## Adım 5 — Mimari Diyagram
Mermaid.js syntax ile producer-consumer topolojisini çiz:
- Hangi servis hangi event'i yayımlıyor
- Topic/Queue adları ve partition sayıları
- Consumer group yapısı
- DLQ akışı

## Adım 6 — Gözlemlenebilirlik (Observability)
İzlenecek kritik metrikleri ve alert threshold'larını belirt:
- Consumer lag (kritik eşik: {beklenen_islem_hacmi} × 2 saniye)
- Message error rate (eşik: %1)
- Processing latency p99
- DLQ derinliği

Distributed tracing için correlation ID ile tüm log satırlarını işaretle.

## Çıktı Formatı
Yanıtını şu sırayla ver:

1. **📋 Event Kataloğu** (tablo formatı: Event Adı | Tür | Kaynak Servis | Tüketiciler | SLA)
2. **🏗️ Broker Seçim Kararı** (gerekçeli karşılaştırma + öneri)
3. **📐 Event Schema Örnekleri** (3 kritik event için JSON)
4. **💻 Kod Örnekleri** (Producer, Consumer, DLQ — {teknoloji_yigini} dilinde)
5. **🗺️ Mimari Diyagram** (Mermaid.js flowchart)
6. **📊 Observability Kurulumu** (Prometheus metrikleri ve Grafana alert önerileri)
7. **🚀 Deployment Runbook** (adım adım operasyon rehberi)

Bu ne işe yarar?

Kafka, RabbitMQ, AWS SQS karşılaştırması ve event schema tasarımı için kapsamlı AI promptu. Dağıtık sistemlerde güvenilir mesajlaşma mimarisi kurun.

İlgili Promptlar