# databricks-academy/spark-ui-simulator architecture

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

- Interactive diagram: https://gitdiagram.com/databricks-academy/spark-ui-simulator
- Repository: https://github.com/databricks-academy/spark-ui-simulator

## Overview

This repository is an educational Spark UI simulator: learners open an experiment, explore a limited interactive representation of a recorded Spark application, and review its source and cluster/job configuration. Experiments are distinct scenarios with versioned Python or Scala implementations and UI configuration for stages, jobs, SQL, streams, and storage. The supplied tree omits the HTML interfaces and README-mentioned screenshots, so their internal wiring and exact entrypoint paths cannot be verified; the graph shows only the documented workflow and paths present in the tree.

Main entry points: [`experiment-6732/v002-S`](https://github.com/databricks-academy/spark-ui-simulator/tree/main/experiment-6732/v002-S) (Recorded experiment), [`common-ui`](https://github.com/databricks-academy/spark-ui-simulator/tree/main/common-ui) (Interactive Spark UI), [`experiment-6732/v002-S/source-code.scala`](https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/source-code.scala) (Spark job source), [`experiment-6732/v002-S/_config/stages-config.js`](https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/stages-config.js) (Stage configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Learning experience"]
  node_menu["Experiment menu"]
  node_simulator["Interactive Spark UI"]
end

subgraph group_scenario["Experiment scenarios"]
  node_experiment["Recorded experiment"]
end

subgraph group_data["Scenario materials"]
  node_source["Spark job source<br/>[source-code.scala]"]
  node_stagecfg["Stage configuration<br/>[stages-config.js]"]
  node_jobcfg["Job configuration<br/>[jobs-config.js]"]
  node_sqlcfg["SQL configuration<br/>[sql-config.js]"]
  node_streamcfg["Stream configuration<br/>[stream-config.js]"]
  node_storagecfg["Storage configuration<br/>[storage-config.js]"]
  node_cluster["Cluster settings<br/>[experiment.js]"]
end

node_learner(("Learner"))

node_learner -->|"opens"| node_menu
node_menu -->|"selects scenario"| node_experiment
node_experiment -->|"presents UI"| node_simulator
node_experiment -->|"includes source"| node_source
node_experiment -->|"configures stages"| node_stagecfg
node_experiment -->|"configures jobs"| node_jobcfg
node_experiment -->|"configures SQL"| node_sqlcfg
node_experiment -->|"configures streams"| node_streamcfg
node_experiment -->|"configures storage"| node_storagecfg
node_experiment -->|"specifies cluster"| node_cluster

click node_simulator "https://github.com/databricks-academy/spark-ui-simulator/tree/main/common-ui"
click node_experiment "https://github.com/databricks-academy/spark-ui-simulator/tree/main/experiment-6732/v002-S"
click node_source "https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/source-code.scala"
click node_stagecfg "https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/stages-config.js"
click node_jobcfg "https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/jobs-config.js"
click node_sqlcfg "https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/sql-config.js"
click node_streamcfg "https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/stream-config.js"
click node_storagecfg "https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/storage-config.js"
click node_cluster "https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/experiment.js"

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_menu,node_simulator toneBlue
class node_experiment toneAmber
class node_source,node_stagecfg,node_jobcfg,node_sqlcfg,node_streamcfg,node_storagecfg,node_cluster toneMint
class node_learner toneIndigo
```

## Components

### Learning experience

- **Experiment menu**
- [Interactive Spark UI](https://github.com/databricks-academy/spark-ui-simulator/tree/main/common-ui): `common-ui`

### Experiment scenarios

- [Recorded experiment](https://github.com/databricks-academy/spark-ui-simulator/tree/main/experiment-6732/v002-S): `experiment-6732/v002-S`

### Scenario materials

- [Spark job source](https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/source-code.scala): `experiment-6732/v002-S/source-code.scala`
- [Stage configuration](https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/stages-config.js): `experiment-6732/v002-S/_config/stages-config.js`
- [Job configuration](https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/jobs-config.js): `experiment-6732/v002-S/_config/jobs-config.js`
- [SQL configuration](https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/sql-config.js): `experiment-6732/v002-S/_config/sql-config.js`
- [Stream configuration](https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/stream-config.js): `experiment-6732/v002-S/_config/stream-config.js`
- [Storage configuration](https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/storage-config.js): `experiment-6732/v002-S/_config/storage-config.js`
- [Cluster settings](https://github.com/databricks-academy/spark-ui-simulator/blob/main/experiment-6732/v002-S/_config/experiment.js): `experiment-6732/v002-S/_config/experiment.js`

### Other components

- **Learner**

## Connections

- Learner → Experiment menu: opens
- Experiment menu → Recorded experiment: selects scenario
- Recorded experiment → Interactive Spark UI: presents UI
- Recorded experiment → Spark job source: includes source
- Recorded experiment → Stage configuration: configures stages
- Recorded experiment → Job configuration: configures jobs
- Recorded experiment → SQL configuration: configures SQL
- Recorded experiment → Stream configuration: configures streams
- Recorded experiment → Storage configuration: configures storage
- Recorded experiment → Cluster settings: specifies cluster
