- Platform pemrosesan pekerjaan background skala besar berbasis Postgres yang bersifat open source
- Distributed Task Queue dan platform orkestrasi workflow
- Mendukung workflow pekerjaan yang kompleks, pemulihan kegagalan, penjadwalan, trigger berbasis event, hingga pemantauan real-time
- Menyediakan SDK Python, Go, dan TypeScript
- Lisensi MIT, tersedia dalam versi self-hosted dan cloud
Ringkasan fitur utama
-
Manajemen antrean
- Sistem antrean durable berbasis Postgres
- Queueing berbasis key (mewujudkan distribusi pekerjaan yang adil)
- Rate limiting
- Sticky Assignment dan Worker Affinity
- Menangani distribusi pekerjaan, retry, dan notifikasi kegagalan secara otomatis
- Menyediakan contoh Python / TypeScript / Go
-
Orkestrasi pekerjaan
- Penyusunan workflow berbasis DAG
- Eksekusi berbasis kondisi (mis: sleep, trigger berbasis event, eksekusi bersyarat berdasarkan nilai output dari pekerjaan induk, dll.)
- Dapat menangani logika percabangan yang kompleks
- Mendefinisikan dependensi antarpekerjaan dan menjalankan banyak pekerjaan secara paralel
- Mendukung penyimpanan dan pemulihan hasil antara dengan durable task
- Eksekusi fungsi yang durable: saat gagal, status antara disimpan di cache dan dipulihkan lewat eksekusi ulang
- Juga mendukung Durable Sleep dan Durable Events
-
Kontrol alur (Flow Control)
- Batas konkurensi per pengguna
- Rate limiting global dan dinamis
- Menjaga stabilitas sistem melalui distribusi pekerjaan yang strategis
-
Penjadwalan pekerjaan
- Mendukung pekerjaan Cron, eksekusi terjadwal, dan durable sleep
- Contoh: berjalan setiap tengah malam, dijadwalkan pada waktu tertentu, menunggu hingga waktu yang ditentukan, dll.
-
Routing pekerjaan
- Sticky Assignment: mengikat pekerjaan ke worker yang sama
- Worker Affinity: menerapkan logika pemilihan worker yang optimal
-
Trigger berbasis event
- Dapat menjalankan pekerjaan setelah menerima event eksternal
- Dapat menggabungkan kondisi event/sleep
-
Web UI real-time
- Dashboard dan pemantauan real-time
- Melihat log pekerjaan, mengatur notifikasi (Slack/email)
Kapan sebaiknya menggunakan Hatchet?
- ✅ Saat membutuhkan penyusunan workflow berbasis DAG
- ✅ Saat retry dan preservasi status penting ketika pekerjaan gagal
- ✅ Untuk pemrosesan distribusi pekerjaan pada aplikasi dengan banyak pengguna
- ❌ Saat hanya membutuhkan antrean sederhana yang mudah di-setup dengan cepat (disarankan Celery/BullMQ, dll.)
- ❌ Saat integrasi dengan berbagai data connector lebih penting (disarankan Airflow/Prefect, dll.)
Perbandingan: Hatchet vs solusi lain
-
Hatchet vs Temporal
- Hatchet mendukung queue + DAG + Durable Execution sekaligus
- Temporal dioptimalkan untuk Durable Execution
- Hatchet mudah untuk self-hosting (hanya membutuhkan Postgres)
-
Hatchet vs BullMQ / Celery
- Hatchet memiliki penyimpanan riwayat pekerjaan + visualisasi UI + orkestrasi bawaan
- BullMQ/Celery adalah library antrean ringan, tetapi fitur monitoring-nya terbatas
-
Hatchet vs Airflow / Prefect
- Hatchet menawarkan eksekusi cepat, latensi rendah, dan manajemen worker sendiri
- Airflow/Prefect berfokus pada pipeline data dan unggul dalam connector integrasi
Ringkasan
- Hatchet adalah platform pemrosesan pekerjaan terdistribusi modern yang berjalan hanya dengan Postgres
- Sistem pekerjaan yang durable, observable, dan composable dapat diwujudkan dengan satu alat
- Mendukung cloud maupun self-hosted, dan mudah diintegrasikan dengan Python/Go/TypeScript
2 komentar
Menulis ini setelah mencobanya selama 2 jam.
docker-compose.yamldi podman(+Arch)SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER: Invalid certificate verification contextKomentar Hacker News
Penasaran apa perbedaannya dibandingkan eksekutor job Python berbasis pg lain seperti Procrastinate atau Chancy
Sangat menarik
FOR UPDATE SKIP LOCKEDtidak bisa diskalakan hingga 25k kueri/detik, penasaran di titik mana batasnya tercapaiFOR UPDATE SKIP LOCKEDagar sesuai kebutuhanPenasaran apakah pekerjaan antrean (memasukkan pekerjaan ke antrean dan menandainya selesai) terjadi dalam transaksi yang sama dengan logika bisnis saya
Saya sedang merancang aplikasi berbasis event/workflow, dan solusi ini tampak sangat menjanjikan
Enam perbaikan pada arsitektur Hatchet meningkatkan performa di semua dimensi
README tampaknya mengasumsikan lebih banyak pengguna memakai mode gelap
Saat memakai Postgres sebagai message queue, saya pernah menghadapi masalah menangani payload besar (lebih dari 50MB)
Memberikan umpan balik setelah meninjau dokumentasi selama 15 menit
Selamat atas rilis v1
Kesan pertama bagus, selamat atas peluncurannya