Translation Not Available
This page is not yet available in German. Showing English content instead.
Help us translate this page! Contribute on GitHub
Architecture#
BDP has two independent consumer paths over the same data store: the CLI pipeline (researchers managing data dependencies) and the AI agent pipeline (LLMs traversing the knowledge graph via MCP).
Components#
[bdp] Ingest#
Background workers (bdp-ingest) that pull from upstream sources (UniProt, NCBI, Ensembl, PubMed, ChEBI, HPO, Reactome, etc.), parse and normalize data, and write to two stores:
- [bdp] Database (PostgreSQL 16) — structured knowledge graph (entities, relationships, ontologies, literature links)
- [bdp] File Storage (MinIO / S3) — raw data files (FASTA, OBO, dump archives, etc.)
[bdp] Registry Server#
A Rust/axum REST API (bdp-server) under /api/v1. Reads from the [bdp] Database and serves presigned URLs for file downloads from [bdp] File Storage. Handles versioning, audit logging, organizations, and search indexing.
[bdp] CLI Tool#
The command-line tool (bdp-cli) on the researcher's machine. Talks to the [bdp] Registry Server over HTTP to resolve versions and retrieve download URLs, then fetches files into the local cache. Writes bdp.lock with exact checksums.
[bdp] MCP Server#
A Model Context Protocol server (bdp-mcp) exposing 24 tools for AI agents. Holds its own direct connection to [bdp] Database — it bypasses the [bdp] Registry Server entirely for low-latency read-only traversal of the knowledge graph. Available over stdio (Claude Desktop, Cursor) or HTTP/SSE.
Technology Stack#
| Layer | Technology |
|---|---|
| Backend | Rust + axum + SQLx |
| Database | PostgreSQL 16 |
| Object storage | MinIO / S3 |
| CLI | Rust + clap |
| MCP server | Rust + rmcp |
| Frontend | Next.js 16 + Tailwind |
| Infrastructure | Terraform + Hetzner Cloud |