Skip to content

oddessentials/odd-demonstration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‘ Distributed Task Observatory

A self-contained, local-first demonstration platform showcasing modern, production-grade distributed systems designed to enable professional-level agentic development at the most efficient rate possible.

⚠️ DISCLAIMER

This repository is a research and demonstration project. It is not production software and not intended for enterprise deployment.

Test Coverage:

Gateway Processor Metrics%20Engine Read%20Model TUI%20Lib PTY%20Server

Behavioral Tests:

TUI Visual Tests


Demo

πŸŽ₯ Click here to watch the dashboard demo on YouTube

πŸ’Ύ Click here to download the dasbhoard demo (MP4)


πŸ—οΈ Architecture

Architecture Stack Platform

Authoritative Resources

Diagrams

Architecture Diagram

Legend

  • 🟩 Green: Primary task execution flow
  • 🟧 Orange: Test framework pressure
  • 🟦 Blue: Observability / monitoring

πŸ”§ Prerequisites

The TUI detects and helps you install all of these automatically.

  • Docker Desktop – container runtime
  • PowerShell Core – cross-platform scripting
  • kubectl – Kubernetes CLI
  • kind – local Kubernetes clusters
  • Rust – required only for building the TUI from source

πŸ“¦ Installation Details

Note: currently releases are unsigned bootstrap builds. See Verifying Releases for checksums.

Verify installation

odd-dashboard --version
odd-dashboard doctor

Supported Platforms

OS Architecture Artifact
Windows x64 odd-dashboard-windows-x64.exe
macOS Intel odd-dashboard-macos-x64
macOS Apple Silicon odd-dashboard-macos-arm64
Linux x64 odd-dashboard-linux-x64
Linux ARM64 odd-dashboard-linux-arm64

System Requirements: 8GB RAM minimum (16GB recommended), 4+ CPU cores, 15GB disk. See Support Matrix for full hardware requirements and Docker Desktop configuration.


πŸš€ Quick Start

Get the Distributed Task Observatory running locally with the fewest possible steps.

1️⃣ Clone the repo

git clone https://github.com/oddessentials/odd-demonstration.git
cd odd-demonstration

2️⃣ Install the dashboard CLI

Choose one option:

Binary (recommended):

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/oddessentials/odd-demonstration/main/install.sh | sh

# Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/oddessentials/odd-demonstration/main/install.ps1 | iex

npm:

npm install -g @oddessentials/odd-dashboard

3️⃣ Verify prerequisites

odd-dashboard doctor

This checks for Docker Desktop, PowerShell, kubectl, and kind, and tells you exactly what’s missing if anything isn’t installed.

4️⃣ Start Docker Desktop

Ensure Docker Desktop is running before continuing.

5️⃣ Launch the system

odd-dashboard

That’s it. The TUI will guide you the rest of the way.

➑️ Next: Press L in the TUI to launch the local cluster.

What the TUI does:

  1. βœ… Checks Docker, PowerShell, kubectl, and kind
  2. πŸ“‹ Shows missing tools with install commands
  3. πŸ“Ž Press C to copy a command to your clipboard
  4. πŸš€ Press L to launch the cluster

πŸ’‘ Rust is only required when building the TUI from source.


πŸ§‘β€πŸ’» Developer Guide

This section is for contributors or anyone running the system directly from source.

Option 1: Rust TUI Launcher (Recommended for dev)

cd src/interfaces/tui
cargo run --release

Option 2: One-shot startup script

Use this if all prerequisites are already installed.

# Windows
.\scripts\start-all.ps1

# macOS / Linux
pwsh ./scripts/start-all.ps1

πŸ”— Access Points

After startup, access services via port-forwards:

Service URL Credentials
Web Terminal http://localhost:8081 -
Gateway API http://localhost:3000 -
↳ API Docs http://localhost:3000/docs -
Read Model API http://localhost:8080/stats -
↳ API Docs http://localhost:8080/docs -
RabbitMQ http://localhost:15672 guest / guest
Grafana http://localhost:3002 admin / admin
Prometheus http://localhost:9090 -
pgAdmin http://localhost:5050 admin@example.com / admin
Mongo Express http://localhost:8082 admin / password123
RedisInsight http://localhost:8001 -

πŸ–₯️ Custom Interfaces

Rust TUI

  • Guided setup & diagnostics
  • One-key cluster launch
  • Real-time job and system stats
  • Alerts from Prometheus
  • Built-in UI launcher

Keyboard shortcuts:

Key Action
L Launch cluster
N New task
U UI launcher
R Refresh
Q Quit

Web Terminal

  • Browser-based terminal powered by xterm.js
  • Pixel-accurate TUI mirroring via PTY streaming
  • Session reconnect on refresh
  • Fallback dashboard when terminal is unavailable

πŸ§ͺ Testing

Run All Tests

# Windows
.\scripts\run-all-tests.ps1

# macOS/Linux
pwsh ./scripts/run-all-tests.ps1

Integration Gate

# Windows
.\scripts\integration-gate.ps1

# macOS/Linux
pwsh ./scripts/integration-gate.ps1

Per-Service Tests

Service Command
Gateway cd src/services/gateway && npx vitest run
Processor cd src/services/processor && pytest tests/ -v
Metrics-Engine cd src/services/metrics-engine && go test -v
Read-Model cd src/services/read-model && go test -v
TUI cd src/interfaces/tui && cargo test

🐳 Docker Hub Images

Pre-built container images are published to Docker Hub for faster integration testing and CI reproducibility.

View on docker hub here

Available Images

Image Base Size Purpose
oddessentials/odto-gateway:latest node:20-slim ~320 MB API Gateway (Node.js/TypeScript)
oddessentials/odto-processor:latest python:3.11-slim ~490 MB Job Processor (Python)
oddessentials/odto-metrics-engine:latest distroless ~23 MB Metrics Aggregator (Go)
oddessentials/odto-read-model:latest distroless ~20 MB Query API (Go)
oddessentials/odto-web-pty-server:latest debian:bookworm ~80 MB PTY WebSocket Server (Rust)
oddessentials/odto-web-ui:latest nginx:alpine ~25 MB Web Terminal Frontend (nginx)

Usage

# Pull latest images
docker pull oddessentials/odto-gateway:latest
docker pull oddessentials/odto-processor:latest
docker pull oddessentials/odto-metrics-engine:latest
docker pull oddessentials/odto-read-model:latest
docker pull oddessentials/odto-web-pty-server:latest
docker pull oddessentials/odto-web-ui:latest

# Run integration tests with pre-built images
docker compose -f docker-compose.integration.yml up -d

Image Tagging

  • :latest β€” Current main branch build
  • :sha-<commit> β€” Exact commit traceability

CI Integration

Images are automatically built and pushed on every merge to main:

  • Security: Build/push only runs on main, never on PRs or forks
  • Contracts are baked into Gateway and Processor images for self-contained tests
  • Core services use these pre-built images for <90s runtime (I4 invariant)

Note: Visual regression tests (tests/visual/) build web-pty-server locally with target: real to embed the actual TUI binary. This ensures PR changes to the TUI are tested before merge.


πŸ“ Project Structure

odd-demonstration/
β”œβ”€β”€ .github/             # CI workflows (GitHub Actions)
β”œβ”€β”€ contracts/           # Event-driven contract layer
β”‚   β”œβ”€β”€ schemas/         # JSON schemas (event-envelope, job, etc.)
β”‚   β”œβ”€β”€ fixtures/        # Test fixtures for validation
β”‚   └── VERSIONS.md      # Schema version registry
β”œβ”€β”€ docs/                # Additional documentation
β”œβ”€β”€ infra/
β”‚   β”œβ”€β”€ k8s/             # Kubernetes manifests (services, mongo, redis, etc.)
β”‚   └── grafana/         # Grafana dashboard JSON
β”œβ”€β”€ scripts/             # Automation & CI scripts
β”‚   β”œβ”€β”€ start-all.ps1    # One-click cluster startup
β”‚   β”œβ”€β”€ run-all-tests.ps1
β”‚   β”œβ”€β”€ integration-gate.ps1
β”‚   β”œβ”€β”€ check-service-versions.py
β”‚   └── check-schema-compat.py
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ interfaces/
β”‚   β”‚   β”œβ”€β”€ tui/         # Rust TUI (ratatui) with cluster launcher
β”‚   β”‚   └── web/         # xterm.js Web Terminal (Nginx + PTY)
β”‚   └── services/
β”‚       β”œβ”€β”€ gateway/         # Node.js - API ingress, schema validation
β”‚       β”œβ”€β”€ processor/       # Python - Job execution worker
β”‚       β”œβ”€β”€ metrics-engine/  # Go - Event aggregation, MongoDB writer
β”‚       β”œβ”€β”€ read-model/      # Go - Query API (Postgres, MongoDB, Redis)
β”‚       └── web-pty-server/  # Rust - PTY WebSocket streaming
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ visual/          # Playwright visual regression tests
β”‚   └── fixtures/        # Integration test fixtures
β”œβ”€β”€ audit/               # Session artifacts & implementation walkthroughs
└── MODULE.bazel         # Bazel workspace (polyglot build)

πŸ›‘ Cleanup

Via TUI (recommended): Press Ctrl+Q in the dashboard to cleanly stop port-forwards and delete the cluster.

Manual cleanup:

# Stop port-forwards (Windows PowerShell)
Get-Job | Stop-Job | Remove-Job

# Stop port-forwards (macOS/Linux - if running in background)
pkill -f "kubectl port-forward"

# Delete cluster (all platforms)
kind delete cluster --name task-observatory

πŸ”¬ Experiment

Here are the results of the experiment associated with this repository.

Experiment Results

View the full experiment β†’


πŸ” Audit (raw details)

This project includes comprehensive audit documentation capturing the implementation journey across 31+ phases:

Document Description
πŸ“‹ session-summary.md High-level project overview with technology stack, key features, and quick access points
βœ… task.md Phase-by-phase implementation checklist tracking all completed work from foundation to hardening
πŸ“– walkthrough.md Detailed implementation walkthrough covering core services, observability, automation, and verification
πŸ“‘ complete-session-audit.md Comprehensive technical audit with executive summary, phase details, and architecture decisions
πŸ“¦ conversations.zip *Archived conversation logs from the development sessions. *.pb files require some priorietery unlock.

🎬 Audit Video

Watch the Audit Video

* Because the converations.zip doesn't seem accessible, I've recorded the Google Anti-Gravity conversations that made up the vast majority of this development effort (from start to finish) in this video.


πŸ“š Documentation

Guides

Agent Documentation (docs/agents/)

Authoritative reference documentation for builders and autonomous agents:

Document Description
πŸ“ INVARIANTS.md System invariants and CI enforcement map
βœ… FEATURES.md Feature coverage and implementation status
πŸ§ͺ TESTING.md Testing strategy, harnesses, and determinism contracts
πŸ“¦ RELEASE_CHECKLIST.md Release preparation and verification steps
πŸ” SECRET_MANAGEMENT.md Secrets handling and rotation procedures
πŸ“‹ SUPPORT_MATRIX.md Platform support and hardware requirements
βœ”οΈ VERIFYING_RELEASES.md Release verification and checksum validation

πŸ“– Further Reading & Background

The following articles document the motivation and evolution of this repository.
They are not required reading, but provide additional context for interested readers.


πŸ‘€ Author

Pete Palles

Pete Palles
πŸ”— LinkedIn: https://www.linkedin.com/in/petepalles

Peter is a Software Engineering Manager at a large enterprise healthcare organization, where he leads a team of highly skilled software engineers. He is also the Founder and CEO of Odd Essentials, LLC. With more than 20 years of experience spanning full-stack development, systems engineering, and applied AI, Peter has architected, designed, and delivered large-scale software systems end-to-end. At the ripe age of 41, Pete is currently completing his MBA at the University of Pittsburgh’s Katz Graduate School of Business.


πŸ“ License

MIT