Skip to content

Overview

Factflow’s backend is a uv workspace of 16 Python packages. This page is the map — pick a tier, pick a package, read its reference.

For deeper context on how packages relate at runtime see Architecture / Package map.

flowchart TB
subgraph Workflows["WORKFLOWS (8)"]
  WS[factflow-webscraper]
  MD[factflow-markdown]
  EM[factflow-embeddings]
  BO[factflow-boost]
  TR[factflow-translator]
  KN[factflow-knowledge]
  SP[factflow-sharepoint]
  RP[factflow-replay]
end
subgraph Shared["SHARED SERVICES (7)"]
  FN[factflow-foundation]
  LIN[factflow-lineage]
  LLM[factflow-llm]
  INF[factflow-infra]
  EN[factflow-engine]
  EX[factflow-execution]
  SRV[factflow-server]
end
subgraph Core["CORE PROTOCOLS (1)"]
  PR[factflow-protocols]
end
Workflows --> Shared
Shared --> Core
Strict tiering. No reverse imports, no cross-workflow imports.

One package, zero workspace dependencies. Every other package implements one or more of its contracts.

  • factflow-protocolsPipelineAdapter, QueueProtocol, StorageProtocol, LLM protocols, plus supporting types and error classes.

The services the server needs to run a pipeline.

  • factflow-foundation — config framework, paths, correlation + observability
  • factflow-lineage — lineage service, repository, PipelineLineageEntry model
  • factflow-llm — LLM + embedding client factory, AIMD rate limiter, error classification
  • factflow-infra — queue providers (Artemis / RabbitMQ / Pulsar) + storage providers (filesystem / MinIO)
  • factflow-engine — orchestrator, processor, registry, backpressure, circuit breaker
  • factflow-execution — execution lifecycle + ExecutionScopedQueue + DAG view
  • factflow-server — FastAPI app, 91-endpoint HTTP surface, chat, webhooks

Each is an independent feature package — its own adapters, its own domain. Workflows don’t import each other.

In decreasing order of frequency:

  1. Adapter authorsfactflow_protocols for PipelineAdapter, the contract, the types. Plus their own workflow package.
  2. Test authors — the relevant workflow package plus factflow_engine.testing for the pipeline harness.
  3. Protocol extendersfactflow_protocols plus the provider factory in factflow_infra / factflow_llm.
  4. Server maintainers — anywhere in the stack.

Plain operators (write YAML + run factflow config run) import nothing.