Skip to content

agungdwiprasetyo/backend-microservices

Repository files navigation

Backend Microservices

Made with

golang logo docker logo rest logo graphql logo grpc logo kafka logo

This repository explain implementation of Go for building multiple microservices using a single codebase. Using Standard Golang Project Layout and Clean Architecture

Create new service (for new project)

Please install latest candi CLI first, and then:

$ candi -init

If include GRPC handler, run this command (must install protoc compiler min version libprotoc 3.14.0):

$ make proto service={{service_name}}

If using SQL database, run this command for migration:

$ make migration service={{service_name}} dbconn="{{YOUR DATABASE URL CONNECTION}}"

Run all services

$ candi -run

Run specific service or multiple services

$ candi -run -service {{service_a}},{{service_b}}

Add module(s) in specific service (project)

$ candi -add-module -service {{service_name}}

Run unit test and calculate code coverage

  • Generate mocks first (using mockery):
$ make mocks service={{service_name}}
  • Run test:
$ make test service={{service_name}}

Run sonar scanner

$ make sonar level={{level}} service={{service_name}}

{{level}} is service environment, example: dev, staging, or prod

Create docker image a service

$ make docker service={{service_name}}

Services