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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Mark Wolfe
November 25, 2015
Programming
150
0
Share
Go kit - A Distributed Programming Toolkit
Presented at the microservices meetup in Melbourne, Australia
Mark Wolfe
November 25, 2015
More Decks by Mark Wolfe
See All by Mark Wolfe
IP Networking in AWS
wolfeidau
0
78
Getting Into Vue.js
wolfeidau
0
200
AWS Automation With Lambda
wolfeidau
1
95
Ansible and Cloudformation
wolfeidau
1
230
Docker Security
wolfeidau
0
200
Building a Proxy in Go
wolfeidau
2
390
Using JWT to Authenticate Microservices
wolfeidau
1
260
Managing Secrets IN AWS
wolfeidau
0
160
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
140
Other Decks in Programming
See All in Programming
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
140
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
5
1.6k
AI-DLC Deep Dive
yuukiyo
9
5.6k
AlarmKitで明後日起きれるアラームアプリを作る
trickart
0
120
ふにゃっとしない名前の付け方 〜哲学で茹で上げる、コシのあるソフトウェア設計〜
shimomura
0
110
10 Tips of AWS ~Gen AI on AWS~
licux
5
540
サプライチェーン攻撃対策「層を重ねて落ちない壁」を10日間で組み上げた話 #TechLeadConf2026
kashewnuts
1
220
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
180
Are We Really Coding 10× Faster with AI?
kohzas
0
130
PHPer、Cloudflare に引っ越す
suguruooki
1
140
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
2
170
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
220
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
67k
Prompt Engineering for Job Search
mfonobong
0
300
Done Done
chrislema
186
16k
AI: The stuff that nobody shows you
jnunemaker
PRO
6
630
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
350
Color Theory Basics | Prateek | Gurzu
gurzu
0
310
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
540
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
690
Deep Space Network (abreviated)
tonyrice
0
130
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How to make the Groovebox
asonas
2
2.2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
370
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