Skip to content
@goadesign

Goa Design

Goa Design: Streamlining Microservice Development with Go-Powered, Design-First Tools 🚀

Design-first Go infrastructure for APIs, services, agents, and distributed systems

Define contracts once. Generate the transports, clients, docs, schemas, tools, and runtime glue that keep production code honest.

Goa stars Goa-AI Goa release Go 1.25+ MIT license Goa Slack

Documentation · Goa · Goa-AI · Examples · Discussions · Design First


Start Here

Design-first APIs and microservices in Go. Write one DSL contract and generate type-safe HTTP, gRPC, JSON-RPC, clients, OpenAPI docs, CLIs, and transport scaffolding with zero drift between design and code.

Read the docs · Browse examples · Go package docs

Design-first agentic systems in Go. Declare agents, tools, MCP servers, policies, structured model outputs, streaming events, and durable execution; generate the plumbing and run it locally or with Temporal.

Read the Goa-AI docs · Quickstart · Go package docs

Start With Goa In 60 Seconds

Install the generator, describe a service, and let Goa create the boring parts.

go install goa.design/goa/v3/cmd/goa@latest

mkdir hello && cd hello
go mod init example.com/hello
mkdir design
package design

import . "goa.design/goa/v3/dsl"

var _ = Service("hello", func() {
	Method("say_hello", func() {
		Payload(func() {
			Field(1, "name", String)
			Required("name")
		})
		Result(String)

		HTTP(func() {
			GET("/hello/{name}")
		})
	})
})
goa gen example.com/hello/design
goa example example.com/hello/design
go run ./cmd/hello

From that one design, Goa generates server interfaces, transport adapters, clients, OpenAPI documentation, and command-line helpers. Your code stays focused on business behavior.

Build Agents With Goa-AI

Goa-AI applies the same design-first contract model to agent systems:

  • Typed tool contracts: Goa types, validations, examples, generated JSON Schema, and generated codecs.
  • MCP integration: generated MCP servers and callers for exposing Goa services and consuming external tools.
  • Structured completions: service-owned result schemas with unary and streaming helpers.
  • Runtime policy: budgets, tool caps, confirmation gates, cancellation, retries, and bounded tool results.
  • Durable execution: an in-memory development engine and a Temporal-backed production engine.
  • Real-time products: typed stream events for assistant text, tool progress, awaits, child runs, usage, and status.

Start with the Goa-AI quickstart, then go deeper in the Goa-AI docs and repository guides.

Why Design First

  • No drift: the design owns the contract; generated code, docs, schemas, and clients stay aligned.
  • Less boilerplate: Goa generates the repetitive 30-50% of an API or agent system so teams build the behavior that matters.
  • One contract, many surfaces: HTTP, gRPC, JSON-RPC, OpenAPI, clients, CLIs, tools, MCP adapters, and agent runtimes come from the same source.
  • Production boundaries: business logic stays separate from transports, model providers, workflow engines, storage, and observability.

The Goa Design Ecosystem

Project What it is for
goa The core design-first framework and code generator for Go APIs and services.
goa-ai Agents, tools, MCP, structured completions, policies, streaming events, and durable runtimes.
examples Copy-pasteable services that show specific Goa capabilities in real projects.
plugins Official plugins that extend Goa generation.
clue OpenTelemetry-based observability for logs, metrics, traces, and health.
pulse Event streaming, replicated maps, Redis-backed semaphores, and distributed worker pools.
model C4 software architecture diagrams as Go code.

Community

We are building Goa with people who care about typed contracts, generated infrastructure, clean service boundaries, and production-grade Go systems.

Sponsors

incident.io

incident.io: Bounce back stronger after every incident

Use incident.io to run incidents end-to-end, rapidly fix issues, and learn from them so your team can build more resilient products.

Learn more
Speakeasy

Speakeasy: Enterprise DevEx for your API

Speakeasy helps teams create feature-rich, production-ready SDKs and improve API developer experience.

Integrate with Goa

Contributing

Goa Design is open source and community-built. The most helpful contributions come with a small design, a failing test, a clear reproduction, or a focused documentation improvement.

Start with the contributing guide and code of conduct, or browse good first issues.

Goa contributors

Pinned Loading

  1. goa goa Public

    Design-first Go framework that generates API code, documentation, and clients. Define once in an elegant DSL, deploy as HTTP and gRPC services with zero drift between code and docs.

    Go 6.1k 584

  2. model model Public

    Create your software architecture models and diagrams in Go.

    Go 461 21

  3. clue clue Public

    🔍 Seamless Observability for Distributed Systems 🔍

    Go 76 12

  4. pulse pulse Public

    ⚡Streamlined event streaming and distributed worker pools in Go⚡

    Go 21 3

  5. plugins plugins Public

    A collection of plugins for Goa.

    Go 70 39

  6. examples examples Public

    Examples for goa showing specific capabilities

    Go 205 72

Repositories

Showing 10 of 19 repositories

Sponsors

  • @incident-io

Top languages

Loading…

Most used topics

Loading…