Developers¶
Implemented
Everything a developer needs to make a meaningful contribution to GPUaaS without re-reading 250+ source docs.
Pages¶
| Page | What it covers |
|---|---|
| Quick start | Clone → infra up → API hot-reload, in 5 commands |
| Repository layout | Where every binary/package/contract/doc lives |
| Coding patterns | The handler/service/db pattern + the mandatory rules |
| Testing patterns | Pyramid, table-driven, integration with real infra |
| Contract workflow | Edit OpenAPI/AsyncAPI first; code generation; codegen smoke |
| CI gates | What each scripts/ci/*.sh enforces |
Reading order for a new developer¶
flowchart LR
A[1. Quick start<br/>get it running] --> B[2. Repo layout<br/>where things are]
B --> C[3. Coding patterns<br/>how to write a feature]
C --> D[4. Contract workflow<br/>start with OpenAPI]
D --> E[5. Testing patterns<br/>unit + integration]
E --> F[6. CI gates<br/>what blocks your PR]
Two non-negotiable rules¶
- Contract-first. Every API or event change starts in
doc/api/openapi.draft.yamlordoc/api/asyncapi.draft.yaml. Code follows the spec, never the reverse. - Outbox-only for events. Domain change + outbox row in one DB transaction. Never publish to NATS directly from a handler.
If your PR violates either, CI will block it.
What the codebase values¶
mindmap
root((Values))
Predictability
Contract-first
Idempotent mutations
Outbox pattern
Per-service tables
Auditability
Immutable ledger
Immutable audit logs
Correlation IDs everywhere
Sanitize-first
Operability
Typed node-agent tasks
Phase-timed task output
Runbook per failure mode
Observability-required
Discipline
Evidence-first execution
Root-cause-first remediation
No hardcoded business constants
No symptom-only fixes