Sticky Cookies
When using streaming services / websockets you need to do some additional steps in your deployment. Why do we need sticky cookies? You might want to deploy your Goa Services into Kubernetes and do a...
View ArticleServer-Sent Events
Server-Sent Events (SSE) is a HTTP-based server-to-client streaming protocol that enables real-time updates from the server to the client. Goa provides native support for implementing SSE endpoints,...
View ArticleBasic Authentication
Basic Authentication is a simple authentication scheme built into the HTTP protocol. While it’s one of the simplest forms of authentication, it’s still widely used, especially for internal APIs or...
View ArticleBasic Setup
Setting up observability in a Goa service involves configuring Clue and OpenTelemetry. This guide walks through the essential setup steps. Prerequisites First, add the required dependencies to your...
View ArticleCombining Middleware and Interceptors
HTTP middleware and Goa interceptors can work together to create powerful, layered solutions. This guide explores patterns and strategies for combining them effectively. Core Concepts Data Flow The...
View ArticleCommand Line Tool
Installation Install Goa’s command-line tools using: go install goa.design/goa/v3/cmd/goa@latest Available Commands Generate Code (goa gen) goa gen <design-package-import-path> [-o...
View ArticleContent Negotiation
Content negotiation allows your HTTP services to support multiple content types and formats. Goa provides a flexible encoding and decoding strategy that makes it possible to associate arbitrary...
View ArticleContributing to Goa
Welcome to the Goa contributor’s guide! This document will help you understand how you can contribute to making Goa better. Whether you’re interested in improving code, documentation, or helping other...
View ArticleData Modeling
Goa provides a powerful type system that allows you to model your domain with precision and clarity. From simple primitives to complex nested structures, the DSL offers a natural way to express data...
View ArticleDesigning a REST API
This tutorial walks you through designing a REST API for managing music concerts using Goa. You’ll learn how to create a complete API design that includes common operations, proper HTTP mappings, and...
View ArticleDesigning gRPC Services
In this tutorial, you’ll design a simple gRPC service with Goa. While Goa is often used for REST endpoints, it also has first-class support for gRPC transports. You’ll see how to: Define a service and...
View ArticleDomain Vs Transport
When designing error handling in Goa, it’s important to understand the distinction between domain errors and their transport representation. This separation allows you to maintain clean domain logic...
View ArticleGetting Started with Interceptors
This guide will walk you through creating and using your first Goa interceptor. We’ll create a simple logging interceptor that records the timing of method calls. Defining an Interceptor Interceptors...
View ArticleInstallation
Prerequisites Goa requires the use of Go modules, so ensure they’re enabled in your Go environment. Use Go 1.18+ (recommended). Enable Go Modules: Confirm they’re enabled in your environment (e.g.,...
View ArticleIntroduction
Effective error handling is a cornerstone of building reliable and maintainable APIs. In the context of Goa, a design-first framework for building microservices Effective error handling is a...
View ArticleIntroduction
Streaming is a powerful feature that allows APIs to handle large volumes of data and real-time updates efficiently. In Goa, streaming support enables you to define endpoints that can send or receive a...
View ArticlegRPC Overview
Goa provides first-class support for designing and implementing gRPC services. This guide introduces the core concepts of using gRPC with Goa. What is gRPC? gRPC is a high-performance RPC (Remote...
View ArticleUnderstanding Plugins
Goa plugins extend and customize the functionality of your APIs. Whether you need to add rate limiting, integrate monitoring tools, or generate code in different languages, plugins provide a flexible...
View ArticleProtocol Buffer Integration
Protocol Buffer Integration Goa manages Protocol Buffer generation and compilation through several key components: Automatic .proto Generation Goa automatically creates Protocol Buffer definitions from...
View ArticleServing Files
Goa provides a straightforward way to serve static assets such as HTML, CSS, JavaScript, and images through the Files function in the service DSL. This function allows you to map HTTP paths to...
View Article