Go to file
2020-11-15 15:54:46 +01:00
certs add cert generation, tls config, reflection 2020-08-07 10:59:27 +02:00
client add registry base interface, mdns, noop implementations, add resolver, client 2020-11-15 15:54:46 +01:00
example add registry base interface, mdns, noop implementations, add resolver, client 2020-11-15 15:54:46 +01:00
registry add registry base interface, mdns, noop implementations, add resolver, client 2020-11-15 15:54:46 +01:00
resolver add registry base interface, mdns, noop implementations, add resolver, client 2020-11-15 15:54:46 +01:00
service add registry base interface, mdns, noop implementations, add resolver, client 2020-11-15 15:54:46 +01:00
utils add registry base interface, mdns, noop implementations, add resolver, client 2020-11-15 15:54:46 +01:00
.gitignore [wip] base options, command, service 2020-01-22 14:02:06 +01:00
go.mod add registry base interface, mdns, noop implementations, add resolver, client 2020-11-15 15:54:46 +01:00
go.sum add registry base interface, mdns, noop implementations, add resolver, client 2020-11-15 15:54:46 +01:00
LICENSE Add LICENSE 2020-11-06 17:32:45 +00:00
README.md add registry base interface, mdns, noop implementations, add resolver, client 2020-11-15 15:54:46 +01:00

gRPC

A utility module, largely taken from the go-micro patterns (and a good amount of code too...) with pure gRPC ecosystem modules.

Principles:

  • Pluggable
  • No singleton

Features:

  • simple configuration with options
  • embeded gorm database with options (branch db)
  • simple TLS configuration
  • TLS auth
  • client connection pool
  • registry / resolver resolution
    • mdns
    • kubernetes
  • default interceptors implementation:
    • validation
    • health
    • context logger
    • sentry
    • rate-limiting
    • auth claim in context
    • recovery
    • tracing (open-tracing)
    • metrics (prometheus)
    • retries
    • context DB / transaction
    • ...
  • api gateway with middleware:
    • auth
    • cors
    • logging
    • tracing
    • metrics
  • broker, based on nats-streaming

Used modules: