https://github.com/subhankardas/go-microservices
Exploring Go microservice patterns and developing production grade web services.
https://github.com/subhankardas/go-microservices
gin gin-framework gin-gonic golang gorilla-mux microservices restful-api
Last synced: about 1 month ago
JSON representation
Exploring Go microservice patterns and developing production grade web services.
- Host: GitHub
- URL: https://github.com/subhankardas/go-microservices
- Owner: subhankardas
- Created: 2022-11-12T13:28:59.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-01-10T12:15:59.000Z (about 3 years ago)
- Last Synced: 2024-11-14T14:44:14.398Z (over 1 year ago)
- Topics: gin, gin-framework, gin-gonic, golang, gorilla-mux, microservices, restful-api
- Language: Go
- Homepage:
- Size: 126 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# go-microservices
The aim of this repository is to explore, learn and develop production grade web-services that are scalable and reliable and implement various microservices patterns.
## Projects
1. **products-service** - Simple RESTful service implementation with the following features.
1. Uses native library and *Gorilla Mux* for serving HTTP requests.
2. Middleware for input validation with custom field validation.
3. Swagger auto-generation with *swaggo* and API client code generation with *open-api*.
4. CORS and file(multi-part) handling, with zipped response using *gzip*.
5. Custom errors with formatted string with *xerrors*.
2. **restaurant-service** - Simple RESTful service with CRUD implementation and the following features.
1. Serving HTTP requests using the Gin framework.
2. Hot reloading using *air*.
3. Custom structured logging using *zap*.
4. Uses *gorm* as the ORM tool for data access.
5. Uses clean architecture i.e. controllers, services, and data access layers.
6. Custom recovery and timeout handling middleware.
7. Uses *viper* for dynamically loading YAML configs based on profiles i.e. dev, QA, and prod.
8. Unit and integration testing of different layers with *testify* and mock generation.
## Roadmap
* [X] Simple microservice with RESTful APIs and file handling capability.
* [X] Microservice with CRUD functionality using a framework and ORM tool.
* [ ] Implement patterns like service discovery, API gateway, asynchronous messaging, and circuit breaker.
* [ ] Inter-service communication using REST, GraphQL, and GRPC.
## References
1. [https://microservices.io](https://microservices.io/)