microservices based movie catalog developed using golang.
- Metadata service: It stores and retrieves movie metadata
gRPC, MySQL, Go - Rating service: It stores and retrieves movie rating
gRPC, MySQL, Go - Movie service: It is an API Gateway. It sits between Client and other services.
gRPC, MySQL, Go
Golang, Docker, Docker compose, Makefile, and zap-pretty
- make docker-build
- make compose-start
grpcurl -plaintext -d '{"record_id":"1", "record_type":"movie"}' localhost:8082 RatingService/GetAggregatedRating
grpcurl -plaintext -d '{"record_id":"1", "record_type":"movie", "user_id": "alex", "rating_value": 5}' localhost:8082 RatingService/PutRating
grpcurl -plaintext -d '{"movie_id":"1"}' localhost:8083 MovieService/GetMovieDetails
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=5
Prometheus Dashboard: http://localhost:9090/
Alert Manager UI: http://localhost:9093
Portainer: http://localhost:9000/
Grafana: http://localhost:3000