Package list golang-github-go-kit-kit / 0fd6d66

Tree @0fd6d66 (Download .tar.gz) @0fd6d66raw · history · blame

# gokit

**gokit** is a working name for a **distributed programming toolkit** to serve the needs of the modern service-oriented enterprise.

- [GitHub repository]( -- RFCs, issues, PRs, etc.
- [go-kit mailing list](!forum/go-kit)
- [Freenode]( #gokit

## Motivation

See [the motivating blog post]( and, eventually, the video of the talk.

## Goals

- Operate in a heterogeneous SOA -- expect to interact with mostly non-gokit services
- RPC as the messaging pattern
- Pluggable serialization and transport -- not just JSON over HTTP
- Zipkin-compatible request tracing
- _more TODO_

## Non-goals

- Having opinions on deployment, orchestration, process supervision
- Having opinions on configuration passing -- flags vs. env vars vs. files vs. ...
- _more TODO_

## Related projects

Projects with a ★ have had particular influence on gokit's design.

### Service frameworks

- [Kite](, a micro-service framework
- [go-micro](, a microservices client/server library ★
- [gocircuit](, dynamic cloud orchestration
- [gotalk](, async peer communication protocol & library

### Individual components

- [afex/hystrix-go](, client-side latency and fault tolerance library
- [streadway/handy](, net/http handler filters
- [rubyist/circuitbreaker](, circuit breaker library
- [spacemonkeygo/monitor](, data collection, monitoring, instrumentation, and Zipkin client library
- [mattheath/phosphor](, distributed system tracing
- [codahale/lunk](, structured logging in the style of Google's Dapper or Twitter's Zipkin
- [sourcegraph/appdash](, application tracing system based on Google's Dapper
- [eapache/go-resiliency](, resiliency patterns
- [FogCreek/logging](, a tagged style of logging
- [Sirupsen/logrus](, structured, pluggable logging for Go ★
- [mailgun/vulcand](, prorammatic load balancer backed by etcd
- [vitess/rpcplus](, package rpc + context.Context
- [pivotal-golang/lager](, an opinionated logging library

### Web frameworks

- [Gorilla](
- [Revel](
- [Gin](
- [Martini](
- [Negroni](
- [Goji](
- [Beego](

## Additional reading

- [Dapper, a Large-Scale Distributed Systems Tracing Infrastructure]( -- Google
- [Your Server as a Function]( (PDF) -- Twitter
- [Architecting for the Cloud]( -- Netflix