Micro Starter Kit

screenshot of Micro Starter Kit

Cloud Native GoLang Microservices - gRPC, GraphQL

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.