- "TypeScript ile yazılmış dayanıklı (durable), devam ettirilebilir (resumable) iş akışı çerçevesi"
- Farklı servisleri ve API'leri birbirine bağlayarak karmaşık iş akışlarını otomatikleştiren bir iş akışı motoru sunuyor
- İş akışı otomasyonu ve entegrasyon sorunlarını çözmek için geliştirilen modüler açık kaynak platform
- Sunucu çökse veya dağıtım yapılsa bile durumu Postgres'e kaydederek tam olarak son adımdan yeniden devam edebiliyor
- Her
step.run({ name }, fn) yalnızca bir kez çalıştırılıyor ve sonucu memoize ediliyor; bu sayede çökme sonrası yeniden başlatmada kart ödemesi veya e-posta gönderimi gibi yan etkiler tekrar çalıştırılmıyor, önbelleğe alınmış sonuç yeniden kullanılıyor
- Ayrı bir özel sunucu olmadan worker process (
ow.newWorker({ concurrency })) DB'den pending run'ları poll edip çalıştırıyor; bu yapı sayesinde birden fazla worker ayağa kaldırılarak yüksek erişilebilirlik ve scale-out sağlanabiliyor, ayrıca step.sleep("id", "1h") gibi uzun süreli sleep işlemleri worker slotlarını meşgul etmiyor
- İş akışı girdi/çıktı generics'leri, sürüm alanı (
version: "v2"), run().result(), handle.cancel() gibi özelliklerle tip güvenli tanım, sürüm yönetimi, sonuç sorgulama ve iptal işlemlerinin tamamı kod seviyesinde ele alınabilecek şekilde tasarlanmış
- Plugin mimarisi üzerinden harici sistemlerle genişletme ve özelleştirme desteği sunuyor
- OpenAI, Slack, GitHub, Notion gibi başlıca SaaS ve geliştirme araçlarıyla entegrasyonu destekliyor
- Şu anda PostgreSQL backend'i ve temel runtime özelliklerine (eşzamanlı yürütme, retry, paralel step'ler, sleep, sürüm yönetimi, cancel) odaklanıyor
- Sonraki aşamada CLI, dashboard, idempotency key, rollback/compensation functions, signals, OpenTelemetry, Redis/SQLite backend'leri, Go/Python SDK gibi özellikler yol haritasında yer alıyor
2 yorum
Kısa süre önce
GitHub - earendil-works/absurd: An experiment in durability https://share.google/PCjaLh3j46ayECI9bbunun paylaşıldığını görmüştüm... Aynı konsepte sahip bir proje gibi görünüyor, peki nereye gitti?...Spring Batch'e benzer bir hissiyat veriyor.