Multi-Tenant-Projekte
Projekte pro Nutzer mit Postgres Row-Level Security. Erstelle API-Tokens pro Projekt, jeweils auf einen einzigen Tenant beschränkt — Leaks bleiben innerhalb des Projekts.
Self-hosted · MIT-Lizenz
Eine schlanke Alternative zu gehosteten QStash-ähnlichen Ingress-Diensten. Multi-Tenant-Queue, HTTP-Auslieferung mit Retries, Cron-Schedules und streng geordnete Message Groups — alles auf deinem eigenen Postgres.
Sechs Primitive. Ein Postgres. Null gehostete Abhängigkeiten.
Projekte pro Nutzer mit Postgres Row-Level Security. Erstelle API-Tokens pro Projekt, jeweils auf einen einzigen Tenant beschränkt — Leaks bleiben innerhalb des Projekts.
Bearer pk_xxx:sk_yyy, bcrypt-gehashed at rest. Beim Erstellen einmal angezeigt, jederzeit aus dem Dashboard widerrufbar.
POST eines HTTP-Jobs: origin, path, method, headers, body, Retries, optional runAt oder delaySeconds, optional idempotencyKey.
Ein origin + viele paths, streng in Reihenfolge ausgeführt. Postgres erzwingt die Reihenfolge der Geschwister zum Claim-Zeitpunkt — übersteht Neustarts und mehrere Worker.
Cron-Ausdruck + Timezone pro Zeile. Ein zentraler Dispatch-Tick reiht fällige Schedules ein; schedule_runs dedupliziert überlappende Worker.
Fehlgeschlagene Versuche wandern nach pending_retry mit Backoff. Nach max_retries: dead. Jeder Versuch wird in delivery_attempts geloggt.
Funktioniert mit curl, dem SDK oder jedem anderen HTTP-Client.
curl -X POST https://api.passthatpayload.com/api/v1/messages \
-H "Authorization: Bearer pk_xxx:sk_yyy" \
-H "Content-Type: application/json" \
-d '{
"origin": "https://api.example.com",
"path": "/hooks/order-created",
"body": { "orderId": 42 },
"maxRetries": 5
}'Was du sonst selbst bauen müsstest.
Nimm ein eingehendes Event und versende es an viele Downstream-URLs, jede mit eigener Retry-Policy. Verliere keine einzige Auslieferung an eine wacklige Drittanbieter-API.
Plane Cron-Ausdrücke pro Zeile. Ein einziger zentraler Dispatch-Tick feuert die fälligen ab — kein OS-Cron pro Schedule, kein Vercel-Cron pro Job.
Soll Schritt 2 auf Schritt 1 warten? Message Groups garantieren die Reihenfolge auf Datenbank-Ebene — auch über mehrere Dispatcher hinweg.
Dieselbe Engine, zwei Betriebsarten.
| Feature | Gehostet | Self-host |
|---|---|---|
| Infrastruktur | Läuft auf api.passthatpayload.com — null Ops auf deiner Seite. | Ein Container + Postgres auf deinem eigenen Server. Hetzner-Runbook in der README. |
| Datenhoheit | Gespeichert in unserem gemeinsamen Postgres, pro Projekt via RLS isoliert. | Deine Datenbank, deine Backups, deine Retention. |
| Kontingente | Großzügiger Free-Tier während der Beta. | Keine Kontingente — nur begrenzt durch dein Postgres und deine Bandbreite. |
| Support | Community + Best Effort. | Community + GitHub-Issues. |
Kostenlos während der Beta. Self-host bleibt für immer kostenlos.
Für alle, die die gehostete Edition während der Beta nutzen.
Betreibe Pass That Payload auf deinem eigenen Server.
Höhere Kontingente, SLA, Priority Support.