Overview
micro-starter-kit is a microservices starter kit for Golang that aims to be developer-friendly. It provides a set of tools and features to help developers build scalable and maintainable microservices using Go.
Features
- Monorepo: All microservices share code within a single repository.
- gRPC microservices with REST Gateway: Provides support for building microservices with gRPC and a REST gateway for easy integration with other services.
- Input Validation with protoc-gen-validate (PGV): Automatically generates input validation code based on protobuf message definitions.
- Config: Offers pluggable sources, mergeable config, and safe recovery options.
- Customizable Logging: Allows for easy customization of logging configuration.
- CRUD Example using GORM: Demonstrates how to build a CRUD application using the GORM ORM library.
- GORM code gen via protoc-gen-gorm: Provides code generation for GORM ORM from protobuf definitions.
- Dependency Injection Container: Provides a dependency injection container for managing dependencies in microservices.
- multi-stage-multi-target Dockerfile: Supports building multi-stage Docker images for different target platforms.
- One Step build/publish/deploy with ko: Simplifies the build, publish, and deployment process with the "ko" tool.
- BuildInfo with govvv: Generates build information with govvv for easy debugging and version tracking.
- Linting with GolangCI linters aggregator: Helps with code quality by running various linters on the codebase.
- Linting Protos with Buf: Provides linting support for protobuf files using the Buf tool.
- CICD Pipelines with GitHub Actions: Offers preconfigured CI/CD pipelines using GitHub Actions.