Application configuration
This page is about configuring the server process — distinct from authoring a pipeline config. Application config sets the broker, database, storage backend, and LLM providers the server uses; pipeline configs describe the work it runs.
How config loads
Section titled “How config loads”Settings come from environment variables (and a .env file in development), namespaced
FACTFLOW_<GROUP>_<FIELD>. Each provider group maps to a settings object:
| Prefix | Configures |
|---|---|
FACTFLOW_APP_* | App name, environment, debug, concurrent-execution ceiling |
FACTFLOW_DATABASE_* | PostgreSQL host/port/database |
FACTFLOW_QUEUE_* | Queue provider selection, pool size, concurrency |
FACTFLOW_ARTEMIS_* / FACTFLOW_PULSAR_* | Provider-specific broker settings |
FACTFLOW_STORAGE_* | Storage URI (file://, minio://, s3://), credentials, file-size limits |
FACTFLOW_LLM_* | LLM provider profiles and credentials |
FACTFLOW_LOGGING_* | Structured logging config (LEVEL, LOG_TO_FILE, LOG_TO_CONSOLE) |
FACTFLOW_LOG_LEVEL | Root-logger level set at process startup |
Running several pipelines at once
Section titled “Running several pipelines at once”FACTFLOW_APP_MAX_CONCURRENT_EXECUTIONS (default 10) caps how many pipeline executions the
orchestrator will admit. Past it, starting a run fails outright rather than queueing:
Failed to start pipeline: Max 10 concurrent executions reached (10 active)This is the only enforced ceiling on concurrency. Nothing limits the number of broker subscriptions, even though each route holds one — a run of 14 concurrent executions was measured holding 59 subscriptions across 42 routes with the broker healthy. So if concurrent runs are being refused, this is the value to raise; there is no subscription cap to tune.
Raise it with the machine in mind rather than by reflex: every route in every execution holds a broker connection, so the practical limit is what the broker and the host's file descriptors will carry.
Pipeline-config discovery and validation
Section titled “Pipeline-config discovery and validation”Two overrides control how the server finds and validates shipped pipeline YAML at startup:
FACTFLOW_CONFIG_PIPELINES_DIR— override the directory scanned for pipeline configs.FACTFLOW_CONFIG_VALIDATOR_STRICT— defaults to strict (abort startup on an invalid shipped YAML); set0to downgrade to warn-only.
FACTFLOW_CONFIG_VALIDATOR_STRICT=0 \FACTFLOW_CONFIG_PIPELINES_DIR=/path/to/pipelines \ uv run python -m factflow_server serve --embeddedProvider configuration
Section titled “Provider configuration”LLM and embedding provider profiles (model, residency, credentials) are covered in
LLM & embedding providers. The broker and storage backends are
selected by the FACTFLOW_QUEUE_* and storage settings above.