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
66
Getting Into Vue.js
wolfeidau
0
190
AWS Automation With Lambda
wolfeidau
1
89
Ansible and Cloudformation
wolfeidau
1
230
Docker Security
wolfeidau
0
190
Building a Proxy in Go
wolfeidau
2
370
Using JWT to Authenticate Microservices
wolfeidau
1
240
Managing Secrets IN AWS
wolfeidau
0
140
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
120
Other Decks in Programming
See All in Programming
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
410
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
130
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
290
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
150
エンジニア向け採用ピッチ資料
inusan
0
140
無関心の谷
kanayannet
0
180
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
820
データベースコネクションプール(DBCP)の変遷と理解
fujikawa8
1
270
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
240
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
840
C++20 射影変換
faithandbrave
0
500
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
0
210
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
BBQ
matthewcrist
89
9.7k
RailsConf 2023
tenderlove
30
1.1k
Raft: Consensus for Rubyists
vanstee
140
7k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Typedesign – Prime Four
hannesfritz
42
2.7k
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