attograph

A langgraph-esque graph workflow execution layer built on the Rust library implementation of BullMQ. Workflows are modeled as a DAG of string-tagged nodes, staged as Redis-backed jobs in topological order, versioned by canonical hash, and fully recorded for inspection.

Key Features

DAG Workflows

Graphs of string-tagged nodes and edges with JSON in/out; validation rejects empty, duplicate, unknown-edge, and cyclic graphs

BullMQ + Redis Backing

Each node runs as a Redis-backed BullMQ job, staged and scheduled in topological order

Content-Addressed Versions

Graphs versioned by canonical sha256 of their JSON, with named aliases like myrelease:1.0.0

Dependency-Aware State

Predecessor outputs flow into each node as state, resolved by the scheduler at runtime

Retries with Backoff

Retryable failures are retried with exponential backoff; permanent failures fail the graph

Full Execution History

Recorded GraphExecution and NodeExecution snapshots with inputs, outputs, attempts, and timestamps

Pluggable Storage

In-process MemoryStorage or MongoDB-backed MongoStorage for graphs, aliases, and executions

Versioned Node Handlers

Register version-tagged handlers per node; node code versions are recorded on every execution