Orchestration de workflows auto-hebergee

Des workflows durables qui ne perdent jamais une etape

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

fetch-user
send-email
update-crm

Resultat

REUSSI

Comment ca marche

Quatre etapes pour creer des workflows durables

01

Definir les fonctions

Utilisez le SDK pour creer des fonctions workflow avec des triggers d'evenements et des etapes durables.

02

Servir et enregistrer

Exposez vos fonctions via un endpoint HTTP. Le moteur les decouvre et les enregistre automatiquement.

03

Envoyer des evenements

Les evenements declenchent les fonctions correspondantes. Le moteur cree des executions et appelle votre app via des callbacks HTTP.

04

Observer et debugger

Suivez les executions etape par etape dans le dashboard. Rejouez les evenements, retentez les echecs, inspectez les sorties.

Ecrivez vos workflows en code

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

workflow.ts
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],
});

Tout ce dont vous avez besoin

Concu pour les developpeurs qui veulent garder le controle de leur infrastructure

Event-Driven

Envoyez des evenements depuis n'importe ou. Les fonctions se declenchent automatiquement selon le nom de l'evenement.

Execution durable

Chaque etape est persistee. Si une fonction echoue en cours de route, elle reprend a la derniere etape completee. Aucun travail n'est perdu.

Retries automatiques

Backoff exponentiel integre. Configurez les retries par fonction. Les executions echouees arrivent dans la dead letter queue.

Planification Cron

Planifiez vos fonctions avec des expressions cron. Le moteur declenche des evenements synthetiques selon le planning.

Webhooks

Recevez des webhooks entrants transformes en evenements. Envoyez des webhooks sortants quand des evenements surviennent. Verification HMAC incluse.

Auto-heberge

Deployez sur votre propre infrastructure. Docker Compose pour le dev, pret pour la production avec PostgreSQL et Redis. Vos donnees restent les votres.

Architecture auto-hebergee

Deployez toute la stack avec Docker Compose

docker-compose.yml
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-alpine

Moteur

Fastify + BullMQ

Dashboard

Next.js + React Flow

PostgreSQL

Drizzle ORM

Redis

File d'attente

Pret a orchestrer ?

Creez votre compte et voyez vos workflows en action