# Sig v0.1.0 - Table of Contents > A resilient DAG workflow engine for Elixir, backed by Ecto (PostgreSQL) and BullMQ (Redis). ## Pages - [Sig](readme.md) - [LICENSE](license.md) ## 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.