İçeriğe geç
ceaksan
PREMIUM developer-tools

Transactional Email Pipeline: Inngest + Listmonk + Resend ile Behavioral Trigger Orkestrasyonu

SMTP olmadan event-driven email pipeline. Inngest event orchestration + Listmonk template tx + Resend HTTP API ile welcome, weekly drip ve lead magnet delivery. Attribute merge, dedup ve known-issues dahil pattern dökümü.

28 Nis 2026
TL;DR

Email pipeline'ları üç katmanı karıştırınca kırılgan oluyor: (1) gönderim altyapısı, (2) subscriber state, (3) tetikleyici/orkestrasyon. Bunları ayrıştırınca her katman bağımsız değiştirilebilir. Inngest event'i fırlatıyor, Listmonk template + subscriber state tutuyor, Resend HTTP API gönderiyor. Welcome, weekly drip ve lead magnet delivery aynı pipeline üzerinden akıyor. Attrib merge, KV dedup, is_new_subscriber gate gibi production sınırları dahil.

Üyelik Gerekli

Bu içeriğe erişmek için giriş yapmanız ve Premium aboneliğine sahip olmanız gerekmektedir.

Önemli Noktalar
  • 01 Email pipeline üç katmana ayrıştırılmalı: gönderim (Resend), state (Listmonk), orkestrasyon (Inngest). Tek araçta birleştirmek lock-in ve bakım yükü doğuruyor.
  • 02 Welcome ve drip aynı motor üzerinden akıyor ama gate mantığı farklı. Welcome için is_new_subscriber === true gate, drip için step + cluster lookup.
  • 03 Subscriber attribute merge'ü doğru kurmazsan list membership'i yanlışlıkla replace edersin. PUT body'de mevcut lists korunmalı, action-based endpoint kullanılmalı.
  • 04 Lead magnet teslimatında 60s window'da KV dedup şart. Aksi halde double-submit, retry ve idempotent olmayan tx'ler aynı maili iki kere gönderir.
  • 05 Stream config (template_id'ler, cluster mapping) tek kaynaktan akmalı. Markdown + kod mirror'ı hem read hem audit kolaylaştırıyor.
Sık Sorulan Sorular (FAQ)
+ Inngest yerine direkt Listmonk drip campaign kullansak olmaz mı?

Listmonk built-in campaign sadece zamanlanmış toplu gönderim için. Behavioral trigger (signup, purchase, scroll milestone) ve cluster bazlı dallandırma yok. Inngest event-driven layer'ı bu boşluğu kapatıyor.

+ Aynı email farklı lead magnet için tekrar başvurursa ne olur?

Subscriber zaten kayıtlıysa is_new_subscriber=false event fırlıyor, welcome gate'i kapanıyor ama tx mail (lead magnet) gidiyor. KV dedup 60s window'da aynı slug+email ikilisini engelliyor. Farklı slug = yeni mail.

+ Listmonk transactional API rate limit'i var mı?

Listmonk tarafında özel rate limit yok, downstream Resend rate limit'i (free tier: 3K/ay, 10/saniye) bottleneck. Worker proxy katmanında ek rate limit gerekirse oraya eklenebilir.

+ Pipeline'ı self-host yerine SaaS ile kursak (Resend audiences, Loops, Customer.io) avantaj olur mu?

Trade-off: SaaS daha az bakım, daha hızlı başlangıç. Karşılığında subscriber state'i taşıyamazsın, custom attribute şeması kısıtlı, tx template'leri vendor-specific. 10K subscriber altı solo workload için self-host + Inngest kombinasyonu kontrolü yüksek tutuyor.

+ Event-driven pipeline için Inngest dışında alternatif?

Trigger.dev, Temporal, AWS Step Functions, hatta basit cron + DB polling. Inngest'i seçme nedeni: TypeScript-native, Cloudflare Workers serve adapter'ı var, durable execution + retry built-in, dashboard observability serbest tier'da yeterli.