XState implementiert die SCXML- und statecharts.dev- Spezifikation als TypeScript-Library. Workflows werden als Maschinen mit Zuständen, Events, Guards, Actions und Side-Effects (Actors) deklariert.
BullMQ ist die Nachfolge-Library von Bull für Node.js. Sie verwendet Redis als Broker und stellt Queues, Workers, Scheduled Jobs sowie FlowProducer bereit, um Job-Bäume mit Eltern-/Kind-Abhängigkeiten zu modellieren.
| Aspekt | XState v5 | BullMQ v5 |
|---|---|---|
| Modell | Statechart / FSM | Job-DAG |
| Ausführung | In-Process (sync/async) | Worker via Redis |
| Persistenz | Snapshot (manuell) | Redis (eingebaut) |
| Skalierung | Pro Prozess | Horizontal über Worker |
| Stärke | Deterministische Geschäftslogik | Asynchrone Pipelines |
| Best für | Bestellprozess, UI-Logik | Datenimport, ETL, Mails |