Definissez des fonctions event-driven en TypeScript. Chaque etape est persistee et memorisee. En cas d'echec, l'execution reprend exactement ou elle s'est arretee. Auto-heberge, observable et concu pour la fiabilite.
Evenement
user.signup
Fonction
send-welcome
Resultat
REUSSI
Quatre etapes pour creer des workflows durables
Utilisez le SDK pour creer des fonctions workflow avec des triggers d'evenements et des etapes durables.
Exposez vos fonctions via un endpoint HTTP. Le moteur les decouvre et les enregistre automatiquement.
Les evenements declenchent les fonctions correspondantes. Le moteur cree des executions et appelle votre app via des callbacks HTTP.
Suivez les executions etape par etape dans le dashboard. Rejouez les evenements, retentez les echecs, inspectez les sorties.
Definissez vos fonctions avec le SDK TypeScript. Chaque step.run() est un checkpoint. La sortie est memorisee : a la re-execution, les etapes completees sont sautees instantanement.
Utilisez step.sleep() pour mettre en pause l'execution pendant des minutes, heures ou jours. Le moteur planifie le reveil et reprend automatiquement.
Compatible Next.js, Express, Fastify ou tout framework HTTP
Zero dependance runtime dans le SDK
Double sortie ESM et CommonJS
import { createFunction, serve } from "cronjobus-sdk-ts";
const sendWelcome = createFunction(
{
id: "send-welcome-email",
trigger: { event: "user.signup" },
retries: 3,
},
async ({ event, step }) => {
const user = await step.run("fetch-user", async () => {
return await db.users.findById(event.data.userId);
});
await step.sleep("wait-1h", "1h");
await step.run("send-email", async () => {
await mailer.send(user.email, "Welcome!");
});
return { sent: true };
}
);
export const { GET, POST } = serve({
functions: [sendWelcome],
});Concu pour les developpeurs qui veulent garder le controle de leur infrastructure
Envoyez des evenements depuis n'importe ou. Les fonctions se declenchent automatiquement selon le nom de l'evenement.
Chaque etape est persistee. Si une fonction echoue en cours de route, elle reprend a la derniere etape completee. Aucun travail n'est perdu.
Backoff exponentiel integre. Configurez les retries par fonction. Les executions echouees arrivent dans la dead letter queue.
Planifiez vos fonctions avec des expressions cron. Le moteur declenche des evenements synthetiques selon le planning.
Recevez des webhooks entrants transformes en evenements. Envoyez des webhooks sortants quand des evenements surviennent. Verification HMAC incluse.
Deployez sur votre propre infrastructure. Docker Compose pour le dev, pret pour la production avec PostgreSQL et Redis. Vos donnees restent les votres.
Deployez toute la stack avec Docker Compose
services:
engine: # Fastify API + BullMQ workers
ports: ["3100:3100"]
depends_on: [postgres, redis]
web: # Next.js dashboard
ports: ["3200:3000"]
postgres: # Durable state
image: postgres:16-alpine
redis: # Job queue
image: redis:7-alpineMoteur
Fastify + BullMQ
Dashboard
Next.js + React Flow
PostgreSQL
Drizzle ORM
Redis
File d'attente