Skip to content

Package map

The workspace has 16 Python packages. This page is the full dependency DAG with per-package purpose.

flowchart TB
PR[factflow-protocols] --> FN[factflow-foundation]
PR --> LLM[factflow-llm]
PR --> INF[factflow-infra]
PR --> LIN[factflow-lineage]
PR --> EN[factflow-engine]
PR --> EX[factflow-execution]
PR --> SRV[factflow-server]
FN --> LLM
FN --> INF
FN --> LIN
FN --> EN
FN --> EX
FN --> SRV
LIN --> EN
LIN --> EX
LIN --> SRV
INF --> EX
INF --> SRV
LLM --> SRV
EN --> EX
EN --> SRV
EX --> SRV
PR --> WS[factflow-webscraper]
PR --> MD[factflow-markdown]
PR --> EM[factflow-embeddings]
PR --> BO[factflow-boost]
PR --> TR[factflow-translator]
PR --> KN[factflow-knowledge]
PR --> SP[factflow-sharepoint]
PR --> RP[factflow-replay]
EN --> WS
EN --> MD
EN --> EM
EN --> BO
EN --> TR
EN --> KN
EN --> SP
EN --> RP
LLM --> BO
LLM --> EM
LLM --> TR
LLM --> KN
INF --> RP
style PR fill:#e6f2ff,stroke:#2563eb,color:#111
style FN fill:#f0fdf4,stroke:#16a34a,color:#111
style LIN fill:#f0fdf4,stroke:#16a34a,color:#111
style LLM fill:#f0fdf4,stroke:#16a34a,color:#111
style INF fill:#f0fdf4,stroke:#16a34a,color:#111
style EN fill:#f0fdf4,stroke:#16a34a,color:#111
style EX fill:#f0fdf4,stroke:#16a34a,color:#111
style SRV fill:#f0fdf4,stroke:#16a34a,color:#111
style WS fill:#fef3c7,stroke:#d97706,color:#111
style MD fill:#fef3c7,stroke:#d97706,color:#111
style EM fill:#fef3c7,stroke:#d97706,color:#111
style BO fill:#fef3c7,stroke:#d97706,color:#111
style TR fill:#fef3c7,stroke:#d97706,color:#111
style KN fill:#fef3c7,stroke:#d97706,color:#111
style SP fill:#fef3c7,stroke:#d97706,color:#111
style RP fill:#fef3c7,stroke:#d97706,color:#111
Every workspace edge. Blue = core, green = shared, amber = workflow. Arrows point from a dependency to its consumer.
PackageRoleKey exports
factflow-protocolsAbstract contractsPipelineAdapter, QueueProtocol, StorageProtocol, LLMClientProtocol, EmbeddingClientProtocol
PackageRoleKey exports
factflow-foundationConfig, paths, observabilityConfig, get_config, ExecutionPathResolver, correlation_context
factflow-lineageMessage lineageLineageService, PipelineLineageRepository, PipelineLineageEntry
factflow-llmLLM client factoryLLMClientFactory, AdaptiveRateLimiter, classify_llm_error
factflow-infraQueue + storage providerscreate_storage_provider, Artemis / RabbitMQ / Pulsar providers, filesystem / MinIO
factflow-engineOrchestration runtimePipelineOrchestrator, OrchestratorManager, ReactiveRouteProcessor, PipelineConfigLoader
factflow-executionExecution lifecycleExecutionService, ExecutionWaiter, PipelineExecution + ExecutionScopedQueue
factflow-serverFastAPI appThe whole HTTP surface + chat + webhooks + container + startup
PackageRoleShips adapters for
factflow-webscraperWeb scrapingsitemap_parser, url_expander, web_scraper, web_crawler, web_content_storage
factflow-markdownHTML → markdown → segmentsstorage_retriever, html_to_markdown, smart_segmenter, segment_publisher, markdown_storage_writer
factflow-embeddingsVector generation + search storageembedding_generator
factflow-boostBoost.AI ingestion10+ adapters under boost_processor
factflow-translatorLLM translationllm_translator
factflow-knowledgeConcept detection + consolidationconcept_detection, concept_consolidation, knowledge_diff
factflow-sharepointSharePoint ingestsharepoint_ingest, document_converter
factflow-replayStorage replayInternal — invoked by API/CLI, not a YAML adapter

Three invariants the workspace enforces:

  1. No reverse imports. Protocols never import from infra. Engine imports from protocols only. Etc.
  2. No cross-workflow imports. factflow-markdown never imports from factflow-webscraper. They compose via queues.
  3. Flat namespace. Every package imports as factflow_<name>. No pkgutil.extend_path, no factflow.X dotted paths.

Typical adapter author imports from:

  • factflow_protocols — for PipelineAdapter, PipelineContext, AdapterResult
  • factflow_foundation — for Config, correlation helpers
  • Their own workflow package — to register adapters

Server-internal. A YAML operator imports nothing — they write config and run factflow config run.