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
64
Getting Into Vue.js
wolfeidau
0
190
AWS Automation With Lambda
wolfeidau
1
87
Ansible and Cloudformation
wolfeidau
1
220
Docker Security
wolfeidau
0
180
Building a Proxy in Go
wolfeidau
2
370
Using JWT to Authenticate Microservices
wolfeidau
1
240
Managing Secrets IN AWS
wolfeidau
0
130
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
120
Other Decks in Programming
See All in Programming
Qiita Bash
mercury_dev0517
2
200
サービスクラスのありがたみを発見したときの思い出 #phpcon_odawara
77web
4
670
地域ITコミュニティの活性化とAWSに移行してみた話
yuukis
0
240
The Evolution of the CRuby Build System
kateinoigakukun
0
710
SwiftUI API Design Lessons
niw
1
290
gen_statem - OTP's Unsung Hero
whatyouhide
1
200
AIコーディングの理想と現実
tomohisa
22
30k
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
1
2.4k
メモリウォールを超えて:キャッシュメモリ技術の進歩
kawayu
0
1.9k
Enterprise Web App. Development (1): Build Tool Training Ver. 5
knakagawa
1
120
Strategic Design (DDD)for the Frontend @DDD Meetup Stuttgart
manfredsteyer
PRO
0
160
Memory API : Patterns, Performance et Cas d'Utilisation
josepaumard
0
140
Featured
See All Featured
Site-Speed That Sticks
csswizardry
5
500
YesSQL, Process and Tooling at Scale
rocio
172
14k
Become a Pro
speakerdeck
PRO
27
5.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.4k
Speed Design
sergeychernyshev
29
900
A designer walks into a library…
pauljervisheath
205
24k
Facilitating Awesome Meetings
lara
54
6.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
660
Practical Orchestrator
shlominoach
186
11k
How to Ace a Technical Interview
jacobian
276
23k
Docker and Python
trallard
44
3.3k
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 • mark@wolfe.id.au
Links • Go Kit • Circuit Breaker Pattern • Dapper,
a Large-Scale Distributed Systems Tracing Infrastructure • The Zipkin distributed tracing project