- Install the latest Go from https://go.dev/
- Install
make
andcurl
tools. - Install PostgreSQL 13 or later from https://www.postgresql.org/download/
- Install the latest Jaeger from https://www.jaegertracing.io/
- Install the latest Prometheus from https://prometheus.io/
- Install OpenJDK 17 from https://openjdk.java.net/projects/jdk/17/
- Install Kafka 3.1.0 or later from https://kafka.apache.org/
- Install the latest Docker from https://www.docker.com/
$ make help
Local commands
help: Show this help
all: Run the all build commands
reqs: Install requirements
deps: Build and install Go dependencies
gen: Generate Go code
build: Compile the current package and all of its dependencies
test: Execute the unit tests
bench: Execute the benchmark tests
lint: Check the current package to catch common mistakes and improve the code
tidy: Cleanup go.mod
fmt: Format *.go and *.proto files using gofmt and clang-format
cover: Show the cover report
grpcui: Run the grpcui tool
clean: Remove generated artifacts
update: Update dependencies as recorded in the go.mod and go.sum files
Docker commands
image: Build Dockerfile
debug-image: Build Dockerfile.debug
dc-build: Build docker-compose.yaml
up: Up reddit-feed-api
down: Down reddit-feed-api
rm: Remove Docker artifacts
CLI commands
run: Run reddit-feed-api locally
cli-create: Run the CreatePostsV1 handle
cli-generate: Run the GenerateFeedV1 handle
producer: Run the Kafka producer command
consumer: Run the Kafka consumer command
Method | Path | Description |
---|---|---|
POST | /v1/posts | Create new posts |
GET | /v1/feed/{page_id} | Generate a feed of posts |
- http://localhost:9100/metrics
http_microservice_requests_total
reddit_feed_api_feed_not_found_total
- http://localhost:8000
- /live- Layed whether the server is running
- /ready - Is it ready to accept requests?
- /version - Version and assembly information
- /debug/pprof - Profiles when profiling enables
pgcli "postgresql://docker:docker@localhost:5432/reddit_feed_api"
goose -dir migrations/reddit-feed-api postgres "postgresql://docker:docker@localhost:5432/reddit_feed_api" status
goose -dir migrations/reddit-feed-api postgres "postgresql://docker:docker@localhost:5432/reddit_feed_api" up
goose -dir migrations/reddit-feed-api postgres "postgresql://docker:docker@localhost:5432/reddit_feed_api" status
- http://localhost:3000
- login
admin
- password
ADMIN
- Dashboard: Reddit Feed API
- login
- http://localhost:9000
- login
admin
- password
admin
- login