goa is a Go library for designing and implementing REST microservices. It includes a DSL for describing APIs, a code generation tool called goagen, and runtime support libraries. goagen takes the API description and generates Go code including a controller scaffold, validation logic, documentation, and more. The generated code is organized across multiple packages for clear separation of concerns between the auto-generated and custom code.