A fast codebase for building a service to serve HTTP requests. Built with love by me and the previous team. In the base-service, we have developed the following features, with ongoing features in the pipeline:
- Support for working with configurations (Dev, Production, Default Values)
- Support for managing logs (Format, Output, Level)
- Support for database operations (RDBMS, NoSQL)
- Support for Authentication with JWT (Sample Payload, Create, GetClaims)
- Support for working with Kafka (Schema, Broker, Consumer)
- Support for Redis operations (Connect, Get, Set, Invalidate)
- Support for AWS S3 operations (Connect, Get, Upload)
- Support for Elasticsearch (Connect, Insert, Search)
- Support for middleware (Rate Limit, Blocking)
- Easy integration with HTTP request handling (Status, Response, graceful shutdown)
- Support for GRPC
- Support for Websocket
- Support for Ethereum
- Support standard authentication functions (Sign In, Sign Up, Change Password, Get Profile)
- Support admin functions: Get all users, Block IP, Upgrade role, Rate Limit
- Support sending messages to Kafka brokers and consuming these messages,then inserting them into Elasticsearch
- Support full-text search using Elasticsearch's API You can import this API collection into Postman as a JSON file using this postman.json file
To install database, redis, kafka, elasticsearch. I defined in docker-compose.yml. You need run to start app
docker-compose up --build -d
Then we run go app with Makefile
make run
- Go version 1.18
This project may have several issues, although I'm not aware of them at the moment. You can contribute to the go-base-service project by submitting documentation issues and pull requests to the repository.