Goa makes it convenient to adopt the elegant monolith architecture, where all services are combined into a single codebase and run in a single process. This guide will walk you through the process of setting up elegant monoliths in Goa.
Goa Endpoint
The key to building a monolithic application with Goa is the Endpoint
construct:
type Endpoint func(ctx context.Context, request any) (response any, err error)
Endpoints define both server and client side remotable functions. On the server side they wrap the actual business logic, while on the client side they wrap the transport layer.