potato
This project is a Go skelethon to be used to develop new microservices. I'm still not sure what I'm gonna do with this in the future; the goal for now is to finish it and write down all the topics to be learn in order to understand what takes to build a Go microservice. Enjoy!
TODO
Relevant topics
- Receive an answer from an endpoint
- Understanding the HTTP server implementation
- Run tests locally
- Table driven tests
- httptest
- Makefile
- go mod
- Run app locally
- Deploy application
- Container registry
- GitHub Actions
- Docker
- YAML
- lint
- Improve configuration
- Configuration files
- Viper
- YAML/TOML/JSON
- flag package
- Create router
- Mux
- Handler
- Why and how to build a router
- Obtain route variables
- Expose CRUD endpoint
- CRUD
- Lock
- HTTP methods, requests, responses
- Certify server health
- Get parameters from request
- Isolate service logic
- Store data
- Repository pattern
- Dependency injection
- KVS
- Enable admin permissions
- Monitor requests
- Observability
- Tracing
- Logging
- Metrics
?. Enable profiling
- pprof
- profiling
?. Implement an actual database
?. Improve response performance
- Cache
?. Authorization/Authentication
?. Stability patterns
- Context
- Circuit Breaker
- Debounce
- Retry
- Throttle
- Timeout
- Singleflight
?. Concurrency patterns
- Fan-In
- Fan-Out
- Future
- Sharding