Goa Framework
Design-first API development with automatic code generation for Go microservices.
This documentation is organized into consolidated, self-contained pages optimized for LLM consumption. Each page can be copied in full to provide comprehensive context.
Design-first API development with automatic code generation for Go microservices.
| Guide | Description | ~Tokens |
|---|---|---|
| Quickstart | Install Goa and build your first service | ~1,100 |
| DSL Reference | Complete reference for Goa’s design language | ~2,900 |
| Code Generation | Understanding Goa’s code generation process | ~2,100 |
| HTTP Guide | HTTP transport features, routing, and patterns | ~1,700 |
| gRPC Guide | gRPC transport features and streaming | ~1,800 |
| Error Handling | Defining and handling errors | ~1,800 |
| Interceptors | Interceptors and middleware patterns | ~1,400 |
| Production | Observability, security, and deployment | ~1,300 |
Total Goa Section: ~14,500 tokens
Design-first framework for building agentic, tool-driven systems in Go.
| Guide | Description | ~Tokens |
|---|---|---|
| Quickstart | Installation and first agent | ~2,700 |
| DSL Reference | Complete DSL: agents, toolsets, policies, MCP | ~3,600 |
| Runtime | Runtime architecture, plan/execute loop, engines | ~2,400 |
| Toolsets | Toolset types, execution models, transforms | ~2,300 |
| Agent Composition | Agent-as-tool, run trees, streaming topology | ~1,400 |
| MCP Integration | MCP servers, transports, generated wrappers | ~1,200 |
| Memory & Sessions | Transcripts, memory stores, sessions, runs | ~1,600 |
| Production | Temporal setup, streaming UI, model integration | ~2,200 |
Total Goa-AI Section: ~17,600 tokens
Every documentation page includes a “Copy page” button with two options:
Both Goa and Goa-AI follow a design-first philosophy:
Generated code provides end-to-end type safety:
// Generated interface - your contract
type Service interface {
Add(context.Context, *AddPayload) (int, error)
}
// Your implementation - clean and focused
func (s *service) Add(ctx context.Context, p *calc.AddPayload) (int, error) {
return p.A + p.B, nil
}
Want to improve the documentation? See the Contributing Guide for guidelines on canonical homes, cross-linking patterns, and content strategy.