# Sig v0.1.0 - API Reference

## Modules

- [Sig](Sig.md): Public API of the Sig workflow engine.

- Defining workflows
  - [Sig.Flow](Sig.Flow.md): A small builder for workflow definitions, plus the DAG helpers used by the
engine.
  - [Sig.Node](Sig.Node.md): Behaviour for workflow nodes.
  - [Sig.NodeContext](Sig.NodeContext.md): The data a node receives when it runs.

- Execution
  - [Sig.Engine](Sig.Engine.md): The execution engine behind `Sig`.
  - [Sig.Serializer](Sig.Serializer.md): Converts Elixir terms into JSON-safe values for storage in PostgreSQL JSONB
columns.

- Distributed execution (BullMQ)
  - [Sig.BullMQ.Queue](Sig.BullMQ.Queue.md): Enqueues workflow nodes as BullMQ jobs.
  - [Sig.BullMQ.Supervisor](Sig.BullMQ.Supervisor.md): Starts the Redis connection and the BullMQ worker that process asynchronous
executions.
  - [Sig.BullMQ.Worker](Sig.BullMQ.Worker.md): Processes the BullMQ jobs enqueued by `Sig.BullMQ.Queue`.

- Persistence
  - [Sig.Migration](Sig.Migration.md): Creates and upgrades Sig's database tables from your application's own
migrations.
  - [Sig.Repo](Sig.Repo.md): Delegates Sig's database calls to your application's Ecto repo.
  - [Sig.Schemas.NodeExecution](Sig.Schemas.NodeExecution.md): The record of one node within a workflow execution.
  - [Sig.Schemas.Workflow](Sig.Schemas.Workflow.md): A persisted workflow definition.
  - [Sig.Schemas.WorkflowExecution](Sig.Schemas.WorkflowExecution.md): A single run of a workflow.

