# databricks-demos/dbdemos architecture

> Architecture diagram of the GitHub repository databricks-demos/dbdemos, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/databricks-demos/dbdemos
- Repository: https://github.com/databricks-demos/dbdemos

## Overview

DBDemos is a Databricks toolkit that installs and shares demo assets in a workspace. The primary workflow is a user listing or selecting a demo, configuring it, then installing notebooks and provisioning demo resources; optional bundling and packaging supports publishing demo content. The graph includes documented dashboard, pipeline, workflow, Genie, SQL, and reporting capabilities. Relationships are limited to source-index references, excerpts, and README statements; some implementation details were not sampled.

Main entry points: [`dbdemos/installer.py`](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer.py) (Install coordinator), [`dbdemos/job_bundler.py`](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/job_bundler.py) (Demo bundler), [`dbdemos/packager.py`](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/packager.py) (Demo packaging), [`dbdemos/dbdemos.py`](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/dbdemos.py) (Demo API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User entry"]
  node_api["Demo API<br/>[dbdemos.py]"]
end

subgraph group_install["Demo installation"]
  node_configuration["Workspace config<br/>[conf.py]"]
  node_installer["Install coordinator<br/>[installer.py]"]
  node_report["Install feedback"]
  node_clusters["Cluster provisioning<br/>[installer.py]"]
  node_pipelines["Pipeline provisioning"]
  node_workflows["Workflow provisioning"]
  node_dashboards["Dashboard setup"]
  node_genie["Genie setup<br/>[installer_genie.py]"]
  node_repos["Repo setup<br/>[installer_repos.py]"]
  node_sql["SQL execution<br/>[sql_query.py]"]
end

subgraph group_assets["Demo assets"]
  node_notebooks["Notebook loading<br/>[installer.py]"]
  node_parser["Notebook transformation<br/>[notebook_parser.py]"]
  node_tracker["Usage tracking<br/>[tracker.py]"]
end

subgraph group_authoring["Demo preparation"]
  node_bundler["Demo bundler<br/>[job_bundler.py]"]
  node_packager["Demo packaging<br/>[packager.py]"]
end

node_user(("Databricks user"))
node_workspace{{"Databricks workspace"}}

node_user -->|"selects demo"| node_api
node_api -->|"installs demo"| node_installer
node_api -->|"reports results"| node_report
node_installer -->|"uses settings"| node_configuration
node_installer -->|"loads notebooks"| node_notebooks
node_installer -.->|"provisions cluster"| node_clusters
node_installer -->|"installs pipelines"| node_pipelines
node_installer -->|"installs workflows"| node_workflows
node_installer -->|"sets up dashboards"| node_dashboards
node_installer -->|"sets up Genie"| node_genie
node_installer -->|"sets up repos"| node_repos
node_notebooks -.->|"transforms content"| node_parser
node_notebooks -.->|"adds tracking"| node_tracker
node_genie -->|"executes queries"| node_sql
node_bundler -->|"uses workflow setup"| node_workflows
node_bundler -->|"uses pipeline setup"| node_pipelines
node_packager -->|"processes notebooks"| node_parser
node_packager -->|"checks job runs"| node_bundler
node_installer -.->|"creates resources"| node_workspace
node_bundler -->|"runs demo jobs"| node_workspace
node_packager -->|"exports assets"| node_workspace
node_pipelines -->|"creates pipelines"| node_workspace

click node_api "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/dbdemos.py"
click node_configuration "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/conf.py"
click node_installer "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer.py"
click node_report "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_report.py"
click node_notebooks "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer.py"
click node_clusters "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer.py"
click node_pipelines "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_pipelines.py"
click node_workflows "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_workflows.py"
click node_dashboards "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_dashboard.py"
click node_genie "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_genie.py"
click node_repos "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_repos.py"
click node_sql "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/sql_query.py"
click node_parser "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/notebook_parser.py"
click node_tracker "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/tracker.py"
click node_bundler "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/job_bundler.py"
click node_packager "https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/packager.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_api,node_user toneBlue
class node_configuration,node_installer,node_report,node_clusters,node_pipelines,node_workflows,node_dashboards,node_genie,node_repos,node_sql toneAmber
class node_notebooks,node_parser,node_tracker toneMint
class node_bundler,node_packager toneRose
class node_workspace toneIndigo
```

## Components

### User entry

- [Demo API](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/dbdemos.py): `dbdemos/dbdemos.py`

### Demo installation

- [Workspace config](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/conf.py): `dbdemos/conf.py`
- [Install coordinator](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer.py): `dbdemos/installer.py`
- [Install feedback](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_report.py): `dbdemos/installer_report.py`
- [Cluster provisioning](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer.py): `dbdemos/installer.py`
- [Pipeline provisioning](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_pipelines.py): `dbdemos/installer_pipelines.py`
- [Workflow provisioning](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_workflows.py): `dbdemos/installer_workflows.py`
- [Dashboard setup](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_dashboard.py): `dbdemos/installer_dashboard.py`
- [Genie setup](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_genie.py): `dbdemos/installer_genie.py`
- [Repo setup](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer_repos.py): `dbdemos/installer_repos.py`
- [SQL execution](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/sql_query.py): `dbdemos/sql_query.py`

### Demo assets

- [Notebook loading](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/installer.py): `dbdemos/installer.py`
- [Notebook transformation](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/notebook_parser.py): `dbdemos/notebook_parser.py`
- [Usage tracking](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/tracker.py): `dbdemos/tracker.py`

### Demo preparation

- [Demo bundler](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/job_bundler.py): `dbdemos/job_bundler.py`
- [Demo packaging](https://github.com/databricks-demos/dbdemos/blob/main/dbdemos/packager.py): `dbdemos/packager.py`

### Other components

- **Databricks user**
- **Databricks workspace**

## Connections

- Databricks user → Demo API: selects demo (evidence: `README.md`)
- Demo API → Install coordinator: installs demo (evidence: `dbdemos/dbdemos.py`)
- Demo API → Install feedback: reports results (evidence: `dbdemos/dbdemos.py`)
- Install coordinator → Workspace config: uses settings (evidence: `dbdemos/installer.py`)
- Install coordinator → Notebook loading: loads notebooks (evidence: `dbdemos/installer.py`)
- Install coordinator → Cluster provisioning: provisions cluster (evidence: `dbdemos/installer.py`)
- Install coordinator → Pipeline provisioning: installs pipelines (evidence: `dbdemos/installer.py`)
- Install coordinator → Workflow provisioning: installs workflows (evidence: `dbdemos/installer.py`)
- Install coordinator → Dashboard setup: sets up dashboards (evidence: `dbdemos/installer.py`)
- Install coordinator → Genie setup: sets up Genie (evidence: `dbdemos/installer.py`)
- Install coordinator → Repo setup: sets up repos (evidence: `dbdemos/installer.py`)
- Notebook loading → Notebook transformation: transforms content (evidence: `dbdemos/installer.py`)
- Notebook loading → Usage tracking: adds tracking (evidence: `dbdemos/installer.py`)
- Genie setup → SQL execution: executes queries (evidence: `dbdemos/installer_genie.py`)
- Demo bundler → Workflow provisioning: uses workflow setup (evidence: `dbdemos/job_bundler.py`)
- Demo bundler → Pipeline provisioning: uses pipeline setup (evidence: `dbdemos/job_bundler.py`)
- Demo packaging → Notebook transformation: processes notebooks (evidence: `dbdemos/packager.py`)
- Demo packaging → Demo bundler: checks job runs (evidence: `dbdemos/packager.py`)
- Install coordinator → Databricks workspace: creates resources
- Demo bundler → Databricks workspace: runs demo jobs (evidence: `dbdemos/job_bundler.py`)
- Demo packaging → Databricks workspace: exports assets (evidence: `dbdemos/packager.py`)
- Pipeline provisioning → Databricks workspace: creates pipelines (evidence: `dbdemos/installer_pipelines.py`)
