A Go microservice framework implementing clean architecture with built-in health checks, metrics, and Swagger documentation.
Microservice is a Go framework for building microservices that follows clean architecture principles. It provides a structured foundation with essential features like health checks, metrics, and API documentation, solving the problem of creating maintainable, production-ready services from scratch.
Go developers building microservices who want a structured, opinionated framework with built-in production features and adherence to clean architecture.
Developers choose Microservice for its practical implementation of clean architecture combined with ready-to-use components like health endpoints and Swagger, reducing boilerplate while enforcing good design patterns.
This library provides a simple microservice framework based on clean architecture principles with a working example implemented.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements clean architecture with distinct layers (entity, usecases, interfaces, infrastructure) as described in the README, promoting separation of concerns and maintainable code.
Includes ready-to-use endpoints for health checks, readiness probes, Prometheus metrics, and Swagger documentation, reducing boilerplate for deployment, as shown in the gateways code.
Uses go-playground/validator for request validation, ensuring data integrity without additional setup, as highlighted in the features.
Supports YAML config files and environment variables via dsbasko/go-cfg, allowing easy customization and deployment flexibility.
The ToDo list shows Docker support and gRPC integration are not yet implemented, which could delay projects relying on these for containerization or communication.
Enforces a specific clean architecture layout, which might be too rigid for teams wanting more flexibility or using different patterns like MVC or event-driven architectures.
Relies on specific libraries like julienschmidt/httprouter and go-playground/validator, limiting options for those who prefer alternative routers or validation frameworks.