- Make sure port 5432 is available (and all the other ports: 5672, 15672, 5000, 5001, 5002, 8888):
sudo lsof -i :5432
- Run:
docker-compose up -d - In order to use the webgui, Use: http://localhost:8888
- Also, your browser needs to be able to access port 5000 (for the API)
- To forward port:
socat TCP-LISTEN:2345,fork,reuseaddr TCP:localhost:8888(LISTEN=host's, 8888=guest)
An event-driven microservices coffee shop application has been written in Golang and deployed using Nomad, Consul Connect, Vault, and Terraform.
Other versions in .NET/C# can be found at:
- Backend building blocks
- grpc-ecosystem/grpc-gateway/v2
- labstack/echo/v4
- rabbitmq/amqp091-go
- kyleconroy/sqlc
- golang-migrate/migrate/v4
- Utils
- google/wire
- ilyakaznacheev/cleanenv
- golang.org/x/exp/slog
- samber/lo
- automaxprocs/maxprocs
- stretchr/testify
- golang/glog
- google/uuid
- google.golang.org/genproto
- google.golang.org/grpc
- google.golang.org/protobuf
- Infrastructure
- Postgres, RabbitMQ
- Hashicorp Nomad, Consul (Connect), Vault, Terraform
- docker and docker-compose
- devcontainer for reproducible development environment
| No. | Service | URI |
|---|---|---|
| 1 | grpc-gateway | http://localhost:5000 |
| 2 | product service | http://localhost:5001 |
| 3 | counter service | http://localhost:5002 |
| 4 | barista service | worker only |
| 5 | kitchen service | worker only |
| 6 | web | http://localhost:8888 |
Jump into .devcontainer, then
> make docker-composeFrom vscode => Press F1 => Type Simple Browser View => Choose it and enter http://localhost:8888.
Enjoy!!!
The details of how to run it can be find at deployment with Nomad, Consult Connect and Vault.
> make wire> make sqlcDevelopment project trouble shooting
- ✅ Enhance project structure with DDD patterns
- Add testing
- Add and integrate with observability libs and tools
- Add user identity management (authentication and authorization)
- Add resiliency


