Reddit Feed API
Build project
For local development
make deps # Installation of dependencies
make build # Build the project
Docker
docker-compose build
Running
For local development
make run
Docker
docker-compose up -d
Stopping
docker-compose down
Logs
docker container logs --tail 100 reddit-feed-api_reddit-feed-api_1
Services
Gateway:
It reads protobuf service definitions and generates a reverse-proxy server which translates a RESTful HTTP API into gRPC
gRPC:
Metrics:
Metrics gRPC Server
Status:
Service condition and its information
Kafka
Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.
PostgreSQL
For the convenience of working with the database, you can use the pgcli utility. Migrations are rolled out when the service starts. migrations are located in the ./migrations directory and are created using the goose tool.
pgcli "postgresql://docker:docker@localhost:5432/reddit_feed_api"
UI
Swagger UI
The Swagger UI is an open source project to visually render documentation for an API defined with the OpenAPI (Swagger) Specification
Grafana:
Jaeger UI
Monitor and troubleshoot transactions in complex distributed systems.
Prometheus:
Prometheus is an open-source systems monitoring and alerting toolkit
Kafka UI
UI for Apache Kafka is a simple tool that makes your data flows observable, helps find and troubleshoot issues faster and deliver optimal performance. Its lightweight dashboard makes it easy to track key metrics of your Kafka clusters - Brokers, Topics, Partitions, Production, and Consumption.
Graylog
Graylog is a leading centralized log management solution for capturing, storing, and enabling real-time analysis of terabytes of machine data.