/dskit

Distributed systems kit

Primary LanguageGoApache License 2.0Apache-2.0

Grafana Dskit

This library contains utilities that are useful for building distributed services, including:

  • Exponential backoff for retries.
  • A common cache API, implemented for Memcached and Redis.
  • Hedging, sending extra duplicate requests to improve the chance that one succeeds.
  • A common key-value API, implemented for Consul, Etcd and Memberlist.
  • RPC middlewares, for metrics, logging, etc.
  • A services model, to manage start-up and shut-down.

Current state

This library is used at scale in production at Grafana Labs. A number of packages were collected here from database-related projects:

Go version compatibility

This library aims to support at least the two latest Go minor releases.

Contributing

If you're interested in contributing to this project:

License

Apache 2.0 License