Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Go kit - A Distributed Programming Toolkit
Search
Mark Wolfe
November 25, 2015
Programming
0
140
Go kit - A Distributed Programming Toolkit
Presented at the microservices meetup in Melbourne, Australia
Mark Wolfe
November 25, 2015
Tweet
Share
More Decks by Mark Wolfe
See All by Mark Wolfe
IP Networking in AWS
wolfeidau
0
70
Getting Into Vue.js
wolfeidau
0
190
AWS Automation With Lambda
wolfeidau
1
92
Ansible and Cloudformation
wolfeidau
1
230
Docker Security
wolfeidau
0
200
Building a Proxy in Go
wolfeidau
2
380
Using JWT to Authenticate Microservices
wolfeidau
1
250
Managing Secrets IN AWS
wolfeidau
0
150
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
140
Other Decks in Programming
See All in Programming
モデル駆動設計をやってみよう Modeling Forum2025ワークショップ/Let’s Try Model-Driven Design
haru860
0
170
Evolving NEWT’s TypeScript Backend for the AI-Driven Era
xpromx
0
120
乱雑なコードの整理から学ぶ設計の初歩
masuda220
PRO
32
14k
Nitro v3
kazupon
2
320
GeistFabrik and AI-augmented software development
adewale
PRO
0
120
Stay Hacker 〜九州で生まれ、Perlに出会い、コミュニティで育つ〜
pyama86
2
2.3k
Feature Flags Suck! - KubeCon Atlanta 2025
phodgson
0
150
PHPライセンス変更の議論を通じて学ぶOSSライセンスの基礎
matsuo_atsushi
0
170
CloudNative Days Winter 2025: 一週間で作る低レイヤコンテナランタイム
ternbusty
7
1.6k
仕様がそのままテストになる!Javaで始める振る舞い駆動開発
ohmori_yusuke
8
4.6k
FlutterKaigi 2025 システム裏側
yumnumm
0
1.1k
Eloquentを使ってどこまでコードの治安を保てるのか?を新人が考察してみた
itokoh0405
0
3.2k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Optimizing for Happiness
mojombo
379
70k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Side Projects
sachag
455
43k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
39
A Tale of Four Properties
chriscoyier
162
23k
Writing Fast Ruby
sferik
630
62k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
How STYLIGHT went responsive
nonsquared
100
5.9k
Transcript
Go kit A Distributed Programming Toolkit
Intro • Mark Wolfe • DevOps at Versent • IoT
& Distributed Systems
go-kit?! • Composable • Opinionated • Service Orientated • Simple
to Deploy
Server Package • Go interfaces • Provides: • Encoding/Decoding •
Tracing and Health • Transport, Rate Limiting and Throttling • Discovery
Client Package • Go interfaces • Provides: • Encoding/Decoding •
Transport, Pooling, Rate Limiting & Circuit Breaker • Tracing
!Important • Circuit Breaker • Stops thundering herds • prevents
sending requests that are likely to fail • Rate Limiter • Enforce upper thresholds on request throughput
Logging • Levels, e.g. Info, Error • Stdout, Stderr •
Keyvals or JSON // Output: // foo=123 // level=info // level=info msg=hello // level=info msg=hello a=1 b=2
Discovery • Inbuilt Service Discovery • DNS Srv Record •
Etcd • Consul
Metrics! • Runtime, Application, Business • Counter, Histogram and Gauges
• Stdout, StatsD or Prometheus import "github.com/go-kit/kit/metrics/expvar" func main() { myCount := expvar.NewCounter("my_count") myCount.Add(1) }
Example Code!
Questions • @wolfeidau on Twitter • https://github.com/wolfeidau •
[email protected]
Links • Go Kit • Circuit Breaker Pattern • Dapper,
a Large-Scale Distributed Systems Tracing Infrastructure • The Zipkin distributed tracing project