Automate anything — traceable plans, reproducible runs.
Yggdrasil is an event-driven orchestration framework for automating well-defined workflows. It watches CouchDB databases and file-system paths for changes, routes events to realm modules, and executes the resulting workflow plans via the Engine.
# Clone and install (dev)
git clone https://github.com/NationalGenomicsInfrastructure/Yggdrasil.git
cd Yggdrasil
conda create -n ygg-dev python=3.11 pip && conda activate ygg-dev
pip install -e .[dev]
# Run the daemon
yggdrasil --dev daemon
# Or process a single document
yggdrasil run-doc <DOC_ID>See docs/getting_started/quickstart.md for full installation, configuration, and CLI reference.
| Path | Contents |
|---|---|
yggdrasil/ |
Public API: flow/ (execution framework), cli.py, core/ |
lib/ |
Internal implementation: core, watchers, CouchDB, realm handlers |
lib/realms/ |
Internal realm implementations and test_realm (dev-only) |
tests/ |
Test suite (1700+ tests) |
docs/ |
Documentation |
Realms are the extension point for domain-specific workflow logic. External realms self-register via the ygg.realm entry-point group. See docs/realm_authoring/guide.md.
Contributions are welcome. Open pull requests against the dev branch. Format with black, lint with ruff, type-check with mypy. Run pre-commit install so hooks fire automatically on commit.
MIT — see LICENSE.