Clean Architecture microservice π
Go, RabbitMQ and gRPC π¨βπ» Full list what has been used:
- GRPC - gRPC
- RabbitMQ - RabbitMQ
- sqlx - Extensions to database/sql.
- pgx - PostgreSQL driver and toolkit for Go
- viper - Go configuration with fangs
- zap - Logger
- validator - Go Struct and Field validation
- migrate - Database migrations. CLI and Golang library.
- testify - Testing toolkit
- gomock - Mocking framework
- CompileDaemon - Compile daemon for Go
- Docker - Docker
- Prometheus - Prometheus
- Grafana - Grafana
- Jaeger - Jaeger tracing
- Bluemonday - HTML sanitizer
- Gomail - Simple and efficient package to send emails
- Go-sqlmock - Sql mock driver for golang to test database interactions
- Go-grpc-middleware - interceptor chaining, auth, logging, retries and more
- Opentracing-go - OpenTracing API for Go
- Prometheus-go-client - Prometheus instrumentation library for Go applications
Recommendation for local development most comfortable usage:
make local // run all containers
make run // run the application
π π¨βπ» π Docker-compose files:
docker-compose.local.yml - run rabbitmq, postgresql, jaeger, prometheus, grafana containers
docker-compose.yml - run all in docker
Docker development usage:
make docker
Local development usage:
make local
make run