minion

module
v0.0.0-...-128b944 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2023 License: Apache-2.0

README

minion

Go Doc Conventional Commits License

A little minion (i.e microservice) that can be replicated to create more minions.

Contents

Requirements

Architecture

Architecture

Inter-microservice communication is handled using gRPC instead of REST due to its higher performance, smaller payload size and tighter API contract.

Both Go services are instrumented using OpenTelemetry and use environment variables for configuration. Traces, metrics and logs are sent using gRPC to an OpenTelemetry collector, which batches and exports them to a Jaeger and Prometheus service.

The why

Minion was created to simplify the creation of microservices. It is lightweight and opinionated.

Some of technologies used in this project are:

  • urfave/cli - Command line interface.
  • swag - Generate REST API documentation.
  • alexliesenfeld/health - Simple and flexible health check library.
  • jsoniter - High-performance drop-in replacement of encoding/json.
  • zap - Blazing fast, structured, leveled logging in Go.
  • opentelemetry - Open source distributed tracing and metrics.
  • watermill - Event messaging.
  • gin - HTTP web framework.
  • resty - HTTP client.

License

Minion is Apache 2.0 licensed.

Stability

This project follows SemVer strictly and is not yet v1.

Breaking changes might be introduced until v1 is released.

This project follows the Go Release Policy. Each major version of Go is supported until there are two newer major releases.

Directories

Path Synopsis
cmd
internal
protobuf/words
Package words is a reverse proxy.
Package words is a reverse proxy.
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL