- Postgres tabanlı büyük ölçekli arka plan işleme platformu açık kaynaklıdır
- Dağıtık iş kuyruğu (Distributed Task Queue) ve iş akışı orkestrasyonu platformu
- Karmaşık iş akışları, hata kurtarma, zamanlama, olay tabanlı tetikleyiciler ve gerçek zamanlı izlemeyi destekler
- Python, Go, TypeScript SDK’ları sunar
- MIT lisansı ile sunulur; self-hosting ve bulut sürümleri mevcuttur
Başlıca özelliklerin özeti
-
Kuyruk yönetimi
- Postgres tabanlı dayanıklı kuyruk sistemi
- Anahtar tabanlı kuyruklama (adil iş dağıtımı sağlar)
- Hız sınırlama (Rate limiting)
- Sticky Assignment ve Worker Affinity
- İş dağıtımı, yeniden deneme ve hata bildirimlerini otomatik yönetir
- Python / TypeScript / Go örnekleri sunar
-
İş orkestrasyonu
- DAG tabanlı iş akışı oluşturma
- Koşul tabanlı yürütme (ör. sleep, olay tabanlı tetikleyiciler, üst işin çıktı değerine göre koşullu çalıştırma vb.)
- Karmaşık dallanma mantığını işleyebilir
- İşler arası bağımlılık tanımlama, birden fazla işi paralel çalıştırma
- Durable task ile ara sonuçların saklanması ve kurtarılması desteklenir
- Dayanıklı fonksiyon yürütme: Hata durumunda ara durumu önbelleğe alır ve yeniden çalıştırmayla geri yükler
- Durable Sleep ve Durable Events de desteklenir
-
Akış kontrolü (Flow Control)
- Kullanıcı bazında eşzamanlılık sınırı
- Genel ve dinamik hız sınırlama (Rate Limiting)
- Stratejik iş dağıtımıyla sistem kararlılığı sağlar
-
İş zamanlama
- Cron işleri, zamanlanmış çalıştırma, durable sleep desteği
- Örn: her gün gece yarısı çalıştırma, belirli bir saate planlama, tanımlı süre bekleme vb.
-
İş yönlendirme
- Sticky Assignment: işi aynı worker’a sabitleme
- Worker Affinity: en uygun worker’ı seçme mantığı uygular
-
Olay tabanlı tetikleyiciler
- Harici olay alındıktan sonra işleri çalıştırabilir
- Olay/sleep koşulları birleştirilebilir
-
Gerçek zamanlı web arayüzü
- Gerçek zamanlı dashboard ve izleme
- İş loglarını görüntüleme, bildirim ayarları (Slack/e-posta)
Hatchet ne zaman tercih edilmeli?
- ✅ DAG tabanlı iş akışı kurgusu gerektiğinde
- ✅ İş başarısız olduğunda yeniden deneme ve durumun korunması önemli olduğunda
- ✅ Çok kullanıcılı uygulamalarda işlerin dağıtık şekilde işlenmesi gerektiğinde
- ❌ Hızlı kurulabilen basit bir kuyruk yeterliyse (Celery/BullMQ vb. önerilir)
- ❌ Çeşitli veri bağlayıcılarıyla entegrasyon kritikse (Airflow/Prefect vb. önerilir)
Karşılaştırma: Hatchet ve diğer çözümler
-
Hatchet vs Temporal
- Hatchet, kuyruk + DAG + Durable Execution bileşiminin tamamını destekler
- Temporal, Durable Execution için optimize edilmiştir
- Hatchet’te self-hosting daha kolaydır (yalnızca Postgres gerekir)
-
Hatchet vs BullMQ / Celery
- Hatchet, iş geçmişi saklama + UI görselleştirme + yerleşik orkestrasyon sunar
- BullMQ/Celery hafif kuyruk kütüphaneleridir ancak izleme özellikleri sınırlıdır
-
Hatchet vs Airflow / Prefect
- Hatchet, yüksek hızlı yürütme, düşük gecikme, kendi worker yönetimi sunar
- Airflow/Prefect veri hattı odaklıdır ve entegrasyon bağlayıcılarında güçlüdür
Özet
- Hatchet, yalnızca Postgres ile çalışan modern bir dağıtık işleme platformudur
- Durable, Observable ve Composable iş sistemleri tek bir araçla kurulabilir
- Hem bulut hem de self-hosting desteklenir; Python/Go/TypeScript ile kolayca entegre edilebilir
2 yorum
2 saat test edip yazıyorum.
docker-compose.yamldosyasını podman(+Arch) üzerinde çalıştırdımSSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER: Invalid certificate verification contexthatasıyla karşılaşınca durdumHacker News görüşleri
Procrastinate veya Chancy gibi diğer pg tabanlı Python iş çalıştırıcılarıyla karşılaştırıldığında farkının ne olduğunu merak ediyorum
Oldukça ilgi çekici görünüyor
FOR UPDATE SKIP LOCKEDyaklaşımının 25k sorgu/sn düzeyine ölçeklenmediği söylenirken, sınırın tam olarak hangi noktada ortaya çıktığını merak ediyorumFOR UPDATE SKIP LOCKEDyaklaşımını ihtiyaçlara uygun şekilde ölçeklendiren çözümün bir parçası olup olmadığını merak ediyorumKuyruk işlemlerinin (işi kuyruğa ekleme ve tamamlandı olarak işaretleme) iş mantığımla aynı transaction içinde gerçekleşip gerçekleşmediğini merak ediyorum
Olay/iş akışı tabanlı bir uygulama tasarlıyorum ve bu çözüm oldukça umut verici görünüyor
Hatchet mimarisindeki altı iyileştirme sayesinde performans her açıdan artmış
README, dark mode kullanan kullanıcıların daha fazla olduğunu varsayıyor
Postgres'i message queue olarak kullanırken büyük payload'ları (50MB üzeri) işleme sorunuyla karşılaştım
Belgeleri 15 dakika gözden geçirdikten sonra geri bildirim veriyorum
v1 çıkışını kutlarım
İlk izlenimim olumlu, çıkışı kutlarım