f207fb441d64d18fbace087e2ffa0ee9dcb9f444
Implements automated supervisor instance deployment that runs scheduled pipelines using a TigerBeetle-inspired continuous orchestration pattern. Infrastructure changes: - Update Pulumi to use existing R2 buckets (beanflows-artifacts, beanflows-data-prod) - Rename scheduler → supervisor, optimize to CCX11 (€4/mo) - Remove always-on worker (workers are now ephemeral only) - Add artifacts bucket resource for CLI/pipeline packages Supervisor architecture: - supervisor.sh: Continuous loop checking schedules every 15 minutes - Self-updating: Checks for new CLI versions hourly - Fixed schedules: Extract at 2 AM UTC, Transform at 3 AM UTC - systemd service for automatic restart on failure - Logs to systemd journal for observability CI/CD changes: - deploy:infra now runs on every master push (not just on changes) - New deploy:supervisor job: * Deploys supervisor.sh and systemd service * Installs latest materia CLI from R2 * Configures environment with Pulumi ESC secrets * Restarts supervisor service Future enhancements documented: - SQLMesh-aware scheduling (check models before running) - Model tags for worker sizing (heavy/distributed hints) - Multi-pipeline support, distributed execution - Cost optimization with multi-cloud spot pricing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Materia Environment Setup
We use uv as our Python package manager for faster, more reliable dependency management.
https://docs.astral.sh/uv/
We recommend using vscode as your IDE. https://code.visualstudio.com/
1. Install UV
curl -LsSf https://astral.sh/uv/install.sh | sh
2. Setup the env
Simply run:
uv sync
This will install python & the dependencies declared so far
3. Setup pre-commit
pre-commit install
4. Adding a dependency
uv add requests
Managing a project with uv
https://docs.astral.sh/uv/guides/projects/#managing-dependencies
test
Description
Languages
Python
50.8%
HTML
33.7%
Jupyter Notebook
8.3%
Shell
3.6%
CSS
2.9%
Other
0.7%