2020-11-06 08:36:22 +00:00
|
|
|
# gRPC
|
|
|
|
|
2020-11-08 18:28:33 +00:00
|
|
|
A utility module, largely taken from the [go-micro](https://github.com/micro/go-micro) patterns (and a good amount of code too...)
|
|
|
|
with pure gRPC ecosystem modules.
|
|
|
|
|
|
|
|
Principles:
|
|
|
|
- Pluggable
|
|
|
|
- No singleton
|
2020-11-06 08:36:22 +00:00
|
|
|
|
|
|
|
Features:
|
|
|
|
- [x] simple configuration with options
|
2021-11-21 15:13:43 +00:00
|
|
|
- [x] embedded gorm database with options (branch db)
|
2020-11-06 08:36:22 +00:00
|
|
|
- [x] simple TLS configuration
|
|
|
|
- [ ] TLS auth
|
|
|
|
- [ ] client connection pool
|
|
|
|
- [ ] registry / resolver resolution
|
|
|
|
- [ ] mdns
|
|
|
|
- [ ] kubernetes
|
2021-11-21 15:13:43 +00:00
|
|
|
- [ ] default interceptors implementation:
|
|
|
|
- [ ] context request id
|
|
|
|
- [x] defaulter
|
|
|
|
- [x] validation
|
2020-11-06 08:36:22 +00:00
|
|
|
- [ ] health
|
|
|
|
- [ ] context logger
|
2021-11-21 15:24:22 +00:00
|
|
|
- [x] sentry
|
2020-11-06 08:36:22 +00:00
|
|
|
- [ ] rate-limiting
|
2021-11-21 15:13:43 +00:00
|
|
|
- [ ] ban
|
2020-11-06 08:36:22 +00:00
|
|
|
- [ ] auth claim in context
|
2021-11-21 15:13:43 +00:00
|
|
|
- [x] recovery (server side only)
|
2021-11-21 13:58:49 +00:00
|
|
|
- [x] tracing (open-tracing)
|
|
|
|
- [x] metrics (prometheus)
|
2020-11-06 08:36:22 +00:00
|
|
|
- [ ] retries
|
|
|
|
- [ ] context DB / transaction
|
|
|
|
- ...
|
2021-11-21 15:13:43 +00:00
|
|
|
- [ ] grpc web / api gateway with middleware:
|
2020-11-06 08:36:22 +00:00
|
|
|
- [ ] auth
|
|
|
|
- [ ] cors
|
|
|
|
- [ ] logging
|
2020-11-08 18:28:33 +00:00
|
|
|
- [ ] tracing
|
2020-11-06 08:36:22 +00:00
|
|
|
- [ ] metrics
|
2020-11-06 14:08:33 +00:00
|
|
|
- [ ] broker, based on nats-streaming
|
|
|
|
|
|
|
|
### Used modules:
|
|
|
|
- https://github.com/grpc-ecosystem/go-grpc-middleware
|
|
|
|
- https://github.com/grpc-ecosystem/grpc-opentracing
|
|
|
|
- https://github.com/grpc-ecosystem/go-grpc-prometheus
|
|
|
|
- https://github.com/grpc-ecosystem/grpc-gateway
|
2021-11-21 15:13:43 +00:00
|
|
|
- https://github.com/jaredfolkins/badactor
|
2021-11-21 15:24:22 +00:00
|
|
|
- https://github.com/johnbellone/grpc-middleware-sentry
|
|
|
|
- https://github.com/improbable-eng/grpc-web
|