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
- Freenode #gokit
See the motivating blog post and, eventually, the video of the talk.
- 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
- Having opinions on deployment, orchestration, process supervision
- Having opinions on configuration passing -- flags vs. env vars vs. files vs. ...
- more TODO
- Kite, a micro-service framework
- go-micro, a microservices client/server library
- gocircuit, dynamic cloud orchestration
- gotalk, async peer communication protocol & library
- 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/apptrace, 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
- Dapper, a Large-Scale Distributed Systems Tracing Infrastructure -- Google
- Your Server as a Function (PDF) -- Twitter
- Architecting for the Cloud -- Netflix