« All posts

Maestro: A CLI That Scaffolds and Reconciles Go Microservices

Maestro scaffolds Go microservice workspaces using project.toml as the source of truth, then reconciles generated files via refresh. Supports Docker, gRPC, HTTP and worker services.

Maestro is a CLI tool built to bootstrap scalable Go microservice workspaces quickly. It sets up a go.work-based workspace with per-service go.mod files, Docker/Docker Compose configs, hot reload via Air, and Taskfiles. Unlike one-shot generators, it treats project.toml as the single source of truth — running maestro refresh reconciles compose files, Taskfiles, and go.mod replace directives without clobbering manual edits.

The tool offers four service shapes — bare, http, grpc, and worker — with gRPC scaffolding following buf lint-compliant proto layouts and HTTP services including Gin-based health checks and zap logging. Database support for Postgres or SQLite follows a migrate-first workflow using sqlc and goose: migrations are written first, then queries, followed by code generation. Secrets are handled exclusively through Doppler integration, with Maestro never generating or pushing secret values itself.

Additional commands support renaming and deleting services, plus a doctor command that verifies required tools like git, task, go, docker, and air are installed. Presets such as auth-jwt and api-gateway scaffold working features — JWT authentication or an edge gateway — in one command, depositing reusable libraries into a shared common/go module. It's a practical option for teams looking to standardize repetitive infrastructure setup across growing Go monorepos.

» SourceHashnode #14