Hub and spoke boundaries, request paths, and the data flows that matter. Trace keeps the order and the original package. The spoke keeps derived geometry and validation history.
| Component | Responsibility |
|---|---|
| Browser | Preact / TypeScript Board rendering, layer controls, finding navigation, revision upload |
| Spoke API | FastAPI Order context and manifest, run lifecycle, findings, revision management, Hub integration, geometry serving. Retrieves the assigned profile from Trace and applies the spoke-owned DFM ruleset. |
| Validation worker | Python Fetch package files with authorized Hub access, parse Gerber and Excellon, normalize geometry, run spoke-owned DFM rules |
| Database | Postgres Revisions, validation runs, findings, processing state |
| Object storage | Derived geometry and larger validation artifacts. The API reads it when serving the browser. |
| Trace Hub API | Order context, original package files and revisions, assigned manufacturing profile, findings and order-item endpoints |
The diagram is a design proposal, not a deployment snapshot. The browser never parses Gerber; it renders normalized geometry returned by the spoke.