Yapay zeka (AI) ajan döngüleri, çok adımlı ödeme sistemleri ve uzun süren arka plan süreçlerinde Temporal (Go/PostgreSQL), Inngest (SaaS) ve BullMQ (Redis) motorlarının sunucu RAM ayak izini, kaza dayanıklılığını ve bulut abonelik faturalarına kıyasla yıllık binlerce dolarlık VDS tasarrufunu hesaplayın.
Go Server + PostgreSQL arka planı
Yıllık: $1,080 adım yürütme bedeli
Yıllık: $144 sınırsız adım
SaaS'a kıyasla %87 tasarruf
| Motor (Engine) | Mimari | Dayanıklı Yürütme (Durable) | Sunucu RAM | Maks İşlem Kapasitesi | Aylık Maliyet |
|---|---|---|---|---|---|
| Temporal (Self-Hosted) | Go Server + PostgreSQL Durumu | Tam Dayanıklı (Kaza Anında Kaldığı Yerden) | 345 MB | 1,800 exec/s | $12/ay |
| BullMQ (Redis) | Node.js + Redis Kuyruğu | Basit Kuyruk (Kaza Korumasız) | 350 MB | 4,800 exec/s | $12/ay |
| Celery (Python) | Python Pre-fork + RabbitMQ | Basit Kuyruk | 360 MB | 1,200 exec/s | $12/ay |
| Inngest Cloud (SaaS) | Yönetilen Bulut Dağıtım Motoru | SaaS Yönetilen | 0 MB (Bulut) | 2,500 exec/s | $90/ay |
Tek bir `docker compose up -d` komutuyla tam dayanıklı yürütme motorunu ve web kontrol panelini ayağa kaldırır.
version: '3.8'
services:
temporal-postgresql:
image: postgres:16-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=temporal
- POSTGRES_PASSWORD=temporal_password_xyz
- POSTGRES_DB=temporal
volumes:
- ./temporal-db:/var/lib/postgresql/data
temporal:
image: temporalio/auto-setup:1.23.0
restart: unless-stopped
depends_on:
- temporal-postgresql
environment:
- DB=postgresql
- DB_PORT=5432
- POSTGRES_USER=temporal
- POSTGRES_PWD=temporal_password_xyz
- POSTGRES_SEEDS=temporal-postgresql
ports:
- "7233:7233" # gRPC API
temporal-ui:
image: temporalio/ui:2.24.0
restart: unless-stopped
ports:
- "8080:8080" # Web Dashboard
environment:
- TEMPORAL_ADDRESS=temporal:7233Sunucu kapansa dahi `sleep('3 days')` durumunu veritabanında saklar; RAM tüketmeden günlerce bekleyebilir.
import { proxyActivities, sleep } from '@temporalio/workflow';
import type * as activities from './activities';
const { chargeCustomer, sendWelcomeEmail, generateAiReport } = proxyActivities<typeof activities>({
startToCloseTimeout: '1 minute',
retry: { initialInterval: '1s', maximumAttempts: 5 },
});
// Sunucu çökse veya yeniden başlasa bile tam kaldığı adımdan devam eder!
export async function onboardingWorkflow(userId: string): Promise<void> {
await chargeCustomer(userId);
await sendWelcomeEmail(userId);
// Günlerce sıfır RAM harcayarak uyur (Durable sleep)
await sleep('3 days');
await generateAiReport(userId);
}Geleneksel web uygulamalarında arka plan görevleri yıllarca BullMQ veya Celery gibi in-memory Redis kuyruklarına devredildi. Ancak bu sistemler "ateşle ve unut" (fire-and-forget) mantığıyla çalışır. Sunucu yeniden başlatıldığında, worker çöktüğünde veya Redis belleği dolup verileri sildiğinde (eviction), yarıda kalan ödeme akışları veya yapay zeka işlem adımları geri dönüşümsüz şekilde kaybolur.
Temporal, kodunuzu sıradan fonksiyonlar gibi yazmanıza olanak tanır ancak her bir adımın sonucunu arka plandaki PostgreSQL veritabanına olay günlüğü (event history) olarak kaydeder. Sunucunuz kapansa, elektrik kesilse veya VDS yeniden başlasa dahi, sistem açıldığı anda fonksiyon kaldığı tam satırdan ve değişken değerleriyleçalışmaya devam eder.
Klasik kuyruklarda bir kullanıcının 3 gün sonra e-posta almasını sağlamak için karmaşık cron tabloları veya gecikmeli kuyruk indeksleri gerekir. Temporal'da doğrudan await sleep('3 days')yazabilirsiniz. Bu süreçte hiçbir CPU iş parçacığı veya RAM harcanmaz; sadece zamanlayıcı veritabanında saklanır.
Inngest gibi yönetilen bulut dayanıklı yürütme servisleri, başlangıç için pratik olsa da ayda 1 milyon adım çalıştıran orta ölçekli bir projede ayda $165 - $300 ($2.000 - $3.600/yıl) fatura çıkarır. Aynı kapasite, aylık $12'lık standart bir 4 GB VDS üzerinde çalışan açık kaynak Temporal kümesiyle sınırsız ve bağımsız olarak karşılanabilir.