Orchestration In design
Maestro is the online service that will distribute work between the goOn instances on your different machines, and will feed the project display in the Hub.
Overview
Each machine runs its own goOn, with its own database. Maestro links them together: it knows which machines are available and hands tasks to the one that can take them. It does not replace goOn and does not centralise its data.
Principles
- Local first: the source of truth remains the goOn of the machine that performs the work. Whatever Maestro stores is disposable and can be rebuilt.
- Outbound connections only: it is the machines that contact Maestro. No port to open, compatible with a home network or a laptop that changes networks.
- Distribution through leases: an available goOn asks for work, Maestro grants it a time-limited lease, renewed for as long as the machine responds. An expired lease puts the task back in the queue.
- Machine lent only when idle: a main workstation can accept work only when it is not in use. This decision is made on the machine itself, without sending any activity data.
- Degraded mode: if Maestro is unavailable, each goOn carries on with its own tasks and will send its results later.
What Maestro will do
| Function | Description |
|---|---|
| Pairing | Each goOn is linked once to Maestro with its own identity |
| Catalogue | Missions, clients and users read from the Hub, served to the machines |
| Project snapshots | Display copy of projects for the Hub console (no secrets, paths, logs or costs) |
| Brands | Relay of the brand packages published by Display |
| Distribution | Task queue, leases and return of results to the originating goOn |
Returning results
Code comes back through Git: the machine that ran the task pushes a branch to the project’s remote repository. State comes back through Maestro, which passes a summary to the originating goOn; the latter updates its own database. A project shared between machines must therefore have a common remote Git repository.
Roadmap
- Brand packages (without Maestro)
- Maestro: catalogue and display in the Hub
- Task distribution between machines
- Hardening: signatures, audit log, monitoring