Workflows and Lineage

The MOI Python SDK and Go SDK both support workflow creation and job lookup. Each SDK has two client layers:

  • RawClient maps directly to service APIs and is the right layer for assembling a workflow graph or paging through jobs.

  • SDKClient wraps RawClient with helpers for a document-processing workflow and job waiting.

Current coverage

The following table reflects the public source on the main branch of both official repositories:

Capability

Python

Go

Create a custom node graph

RawClient.create_workflow()

RawClient.CreateWorkflow()

Create the built-in document pipeline

SDKClient.create_document_processing_workflow()

SDKClient.CreateDocumentProcessingWorkflow()

List jobs with pagination

RawClient.list_workflow_jobs()

RawClient.ListWorkflowJobs()

Find one job by workflow and source file

SDKClient.get_workflow_job()

SDKClient.GetWorkflowJob()

Wait for a job to appear or reach a status

SDKClient.wait_for_workflow_job()

SDKClient.WaitForWorkflowJob()

The SDKs currently have no public methods for reading, updating, deleting, or explicitly starting a workflow; pausing, resuming, canceling, retrying, or rerunning a job; listing WorkItems; publishing operator API services; or querying lineage. The pages in this section document those boundaries instead of inventing methods that do not exist.

A workflow ID identifies the definition. A job ID identifies the work created for a source file. Job lookup and waiting normally require the workflow ID and source-file ID together; do not interchange these identifiers.