« Tüm yayınlar

Spoold: Veritabanı veya Broker Olmadan Dayanıklı Giden HTTP İstekleri

Spoold, giden HTTP isteklerine veritabanı veya broker olmadan dayanıklı, en az bir kez teslim garantisi sağlayan hafif bir Go daemon'u.

Spoold, giden HTTP isteklerini PostgreSQL, Redis, Kafka gibi bir veritabanı veya mesaj brokerı olmadan dayanıklı hale getiren açık kaynaklı bir Go daemon'u. İstek, diske senkronize edilmeden önce onaylanmıyor; ardından arka planda teslim ediliyor ve süreç kapansa, sistem yeniden başlasa veya ağ kesilse bile sınırlı sayıda yeniden deneme sürdürülüyor — curl --retry'nin aksine, yeniden deneme döngüsü gönderen sürece bağlı değil.

Tasarımın merkezinde tek bir sahibine özel, ekleme-sadece (append-only) journal dosyası var: deterministik replay, çevrimiçi sıkıştırma, çakışma tespitli idempotent kuyruğa alma, kopya teslimi önlemek için lease tabanlı worker'lar ve varsayılan olarak private/loopback hedefleri engelleyen SSRF-farkında bağlantı kurma. Sistem sıkı bir JSON API ve Prometheus metrikleri sunuyor; Go standart kütüphanesi dışında hiçbir çalışma zamanı bağımlılığı yok.

Spoold, çok spesifik bir niş için tasarlanmış: yeniden başlatma sonrası tamamlanma raporlaması gereken cron job'lar, saatlerce çevrimdışı kalabilen edge agent'lar veya veritabanı taşımadan callback saklaması gereken cihazlar. Uygulama veritabanı işlemiyle atomik olması gereken senaryolar veya hostlar arası yüksek erişilebilirlik gereken durumlar için uygun değil.

Sürümler Sigstore/Cosign ile imzalanıyor, SBOM ve build provenance ile birlikte geliyor; kurulum scripti, container imajları ve yönetim için spoolctl CLI aracı sunuluyor.