Kafka as messages broker
gRPC Go implementation of gRPC
PostgreSQL as database
Prometheus monitoring and alerting
Grafana for to compose observability dashboards with everything from Prometheus
MongoDB Web and API based SMTP testing
Redis Type-safe Redis client for Golang
swag Swagger for Go
Beego framework fro Go
This project has 4 Domain layer :
- Models Layer
- Repository Layer
- Usecase Layer
- Delivery Layer
The explanation about this project's structure can read from this medium's post : https://medium.com/@imantumorang/golang-clean-archithecture-efd6d7c43047
#move to directory
cd $GOPATH/src/github.com/radyatamaa
# Clone into YOUR $GOPATH/src
git clone https://github.com/radyatamaa/go-cqrs-microservices.git
#move to project
cd go-cqrs-microservices
# Run app writer service
go run write_service/cmd/main.go
# Run app reader service
go run reader_service/cmd/main.go
# Run app api gateway service
go run api_gateway_service/cmd/main.go
Or with docker-compose
#move to directory
cd $GOPATH/src/github.com/radyatamaa
# Clone into YOUR $GOPATH/src
git clone https://github.com/radyatamaa/go-cqrs-microservices.git
#move to project
cd go-cqrs-microservices
# Run the application
make run OR docker compose -f "docker-compose.yml" up -d --build
# Open at browser this url
http://localhost:8082/swagger/index.html