When to Use Prose
Prose is an in-process workflow orchestration library. It runs inside your existing Node.js process with zero external dependencies. Before adopting it, it’s worth understanding what it does not try to be.
Not a durable execution engine
Section titled “Not a durable execution engine”If you need workflows that survive process restarts, resume after hours or days, or coordinate across distributed services, look at Temporal, Inngest, or Trigger.dev. These require infrastructure (servers, queues, databases) but give you persistence and replay guarantees that an in-process library fundamentally cannot.
Not a full effect system
Section titled “Not a full effect system”Effect-TS is more powerful in every technical dimension — typed errors in the return signature, type-level dependency injection via Layers, fibers, streams, and a massive standard library. If your team can invest in learning its functional programming model, Effect is the more capable choice. Prose trades that power for simplicity: pure async/await, no monads, no new paradigms to learn.
Not a state machine
Section titled “Not a state machine”XState models workflows as finite state machines with explicit states, transitions, and guards — ideal for complex non-linear flows with many possible state transitions. Prose is designed for sequential (or branching) business logic pipelines where a state machine’s verbosity would be overhead.
Not a result type library
Section titled “Not a result type library”Libraries like neverthrow or fp-ts encode errors in return types (Result<T, E>, Either<E, A>). Prose does not — steps throw, and failures are wrapped in FlowExecutionError. If typed error channels are critical to you, Effect or neverthrow are better fits.
Where Prose fits
Section titled “Where Prose fits”Prose is for teams building backend services with multi-step business logic (process an order, onboard a user, handle a payment) who want structured retries, timeouts, transactions, observability, and type-safe state threading — without adopting new infrastructure or a new programming paradigm.
| Need | Tool |
|---|---|
| Durable workflows, cross-service orchestration | Temporal, Inngest, Trigger.dev |
| Full effect system with typed errors | Effect-TS |
| State machines with complex transitions | XState |
| In-process business logic pipelines | Prose |