# jprios/queue-model architecture

> Architecture diagram of the GitHub repository jprios/queue-model, 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/jprios/queue-model
- Repository: https://github.com/jprios/queue-model

## Overview

This is a production queueing decision-support simulator. In the documented Streamlit workflow, an engineer selects a queue model and configures arrival, service, capacity, and server parameters; the app invokes deterministic simulation or stochastic queue calculations, then presents performance measures and visualizations for congestion, WIP, waiting time, utilization, and losses. A Tkinter interface is also present in the source tree. The excerpts show the model APIs and parts of the Streamlit orchestration; unsampled UI paths are not expanded here.

Main entry points: [`app.py`](https://github.com/jprios/queue-model/blob/main/app.py) (Streamlit App), [`Windows.py`](https://github.com/jprios/queue-model/blob/main/Windows.py) (Tkinter App), [`Deterministic.py`](https://github.com/jprios/queue-model/blob/main/Deterministic.py) (D/D/1/K Simulation), [`Stochastic.py`](https://github.com/jprios/queue-model/blob/main/Stochastic.py) (M/M Queue Models)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User Interfaces"]
  node_streamlit["Streamlit App<br/>[app.py]"]
  node_tkinter["Tkinter App<br/>[Windows.py]"]
end

subgraph group_models["Queue Models"]
  node_deterministic["D/D/1/K Simulation<br/>[Deterministic.py]"]
  node_stochastic["M/M Queue Models<br/>[Stochastic.py]"]
end

subgraph group_results["Analysis Results"]
  node_metrics["Queue Metrics<br/>[Stochastic.py]"]
  node_timeline["Simulation Timeline<br/>[Deterministic.py]"]
  node_dashboard["Deterministic Dashboard<br/>[app.py]"]
  node_summary["Performance Measures<br/>[app.py]"]
  node_plots["Queue Visualizations<br/>[Windows.py]"]
end

node_engineer(("Production Engineer"))

node_engineer -->|"configures and runs"| node_streamlit
node_engineer -->|"configures and runs"| node_tkinter
node_streamlit -->|"creates simulation"| node_deterministic
node_streamlit -->|"creates model"| node_stochastic
node_deterministic -->|"computes events"| node_timeline
node_streamlit -->|"renders plots"| node_dashboard
node_streamlit -->|"shows results"| node_summary
node_stochastic -->|"calculates L, W, ρ"| node_metrics
node_streamlit -->|"requests metrics"| node_metrics
node_tkinter -->|"creates simulation"| node_deterministic
node_tkinter -->|"creates model"| node_stochastic
node_tkinter -->|"dispatches plot actions"| node_plots
node_tkinter -->|"requests metrics"| node_metrics

click node_streamlit "https://github.com/jprios/queue-model/blob/main/app.py"
click node_tkinter "https://github.com/jprios/queue-model/blob/main/Windows.py"
click node_deterministic "https://github.com/jprios/queue-model/blob/main/Deterministic.py"
click node_stochastic "https://github.com/jprios/queue-model/blob/main/Stochastic.py"
click node_metrics "https://github.com/jprios/queue-model/blob/main/Stochastic.py"
click node_timeline "https://github.com/jprios/queue-model/blob/main/Deterministic.py"
click node_dashboard "https://github.com/jprios/queue-model/blob/main/app.py"
click node_summary "https://github.com/jprios/queue-model/blob/main/app.py"
click node_plots "https://github.com/jprios/queue-model/blob/main/Windows.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_streamlit,node_tkinter toneBlue
class node_deterministic,node_stochastic toneAmber
class node_metrics,node_timeline,node_dashboard,node_summary,node_plots toneMint
class node_engineer toneIndigo
```

## Components

### User Interfaces

- [Streamlit App](https://github.com/jprios/queue-model/blob/main/app.py): `app.py`
- [Tkinter App](https://github.com/jprios/queue-model/blob/main/Windows.py): `Windows.py`

### Queue Models

- [D/D/1/K Simulation](https://github.com/jprios/queue-model/blob/main/Deterministic.py): `Deterministic.py`
- [M/M Queue Models](https://github.com/jprios/queue-model/blob/main/Stochastic.py): `Stochastic.py`

### Analysis Results

- [Queue Metrics](https://github.com/jprios/queue-model/blob/main/Stochastic.py): `Stochastic.py`
- [Simulation Timeline](https://github.com/jprios/queue-model/blob/main/Deterministic.py): `Deterministic.py`
- [Deterministic Dashboard](https://github.com/jprios/queue-model/blob/main/app.py): `app.py`
- [Performance Measures](https://github.com/jprios/queue-model/blob/main/app.py): `app.py`
- [Queue Visualizations](https://github.com/jprios/queue-model/blob/main/Windows.py): `Windows.py`

### Other components

- **Production Engineer**

## Connections

- Production Engineer → Streamlit App: configures and runs
- Production Engineer → Tkinter App: configures and runs
- Streamlit App → D/D/1/K Simulation: creates simulation
- Streamlit App → M/M Queue Models: creates model
- D/D/1/K Simulation → Simulation Timeline: computes events
- Streamlit App → Deterministic Dashboard: renders plots
- Streamlit App → Performance Measures: shows results
- M/M Queue Models → Queue Metrics: calculates L, W, ρ
- Streamlit App → Queue Metrics: requests metrics
- Tkinter App → D/D/1/K Simulation: creates simulation
- Tkinter App → M/M Queue Models: creates model
- Tkinter App → Queue Visualizations: dispatches plot actions
- Tkinter App → Queue Metrics: requests metrics
