- each service communicate with
port
interface - each service completely de-coupling
.
├── README.md
├── cmd
│ └── main.go
├── docker-compose.yml
├── go.mod
├── go.sum
├── hexagonal.png
└── internal
├── adapters
│ ├── app
│ │ └── api
│ │ └── api.go
│ ├── core
│ │ └── arithmetic
│ │ ├── arithmetic.go
│ │ └── arithmetic_test.go
│ └── framework
│ ├── left
│ │ └── grpc
│ │ ├── proto
│ │ │ └── arithmetic_svc.proto
│ │ └── server
│ │ └── server.go
│ └── right
│ └── db
│ └── db.go
└── ports
├── app.go
├── core.go
├── framework_left
│ ├── arithmetic_svc.pb.go
│ └── arithmetic_svc_grpc.pb.go
└── framework_right.go
docker-compose up
docker-compose down
brew install protobuf
protoc --go_out=internal/adapters/framework/left/grpc --go-grpc_out=internal/adapters/framework/left/grpc --proto_path=internal/adapters/framework/left/grpc/proto internal/adapters/framework/left/grpc/proto/*.proto
go run cmd/main.go
- install evans
evans internal/adapters/framework/left/grpc/proto/arithmetic_svc.proto