$30 off During Our Annual Pro Sale. View Details »
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
73
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
配送計画の均等化機能を提供する取り組みについて(⽩⾦鉱業 Meetup Vol.21@六本⽊(数理最適化編))
izu_nori
0
150
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
110
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
130
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
160
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
440
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
2
220
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
170
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.8k
Github Copilotのチャット履歴ビューワーを作りました~WPF、dotnet10もあるよ~ #clrh111
katsuyuzu
0
110
React Native New Architecture 移行実践報告
taminif
1
150
AIコーディングエージェント(Gemini)
kondai24
0
220
Go コードベースの構成と AI コンテキスト定義
andpad
0
130
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Site-Speed That Sticks
csswizardry
13
1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
How to train your dragon (web standard)
notwaldorf
97
6.4k
A designer walks into a library…
pauljervisheath
210
24k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Producing Creativity
orderedlist
PRO
348
40k
The World Runs on Bad Software
bkeepers
PRO
72
12k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
It's Worth the Effort
3n
187
29k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
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