Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Go kit - A Distributed Programming Toolkit
Search
Mark Wolfe
November 25, 2015
Programming
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Go kit - A Distributed Programming Toolkit
Presented at the microservices meetup in Melbourne, Australia
Mark Wolfe
November 25, 2015
Transcript
12 slides
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
More Decks by Mark Wolfe
See All by Mark Wolfe
IP Networking in AWS
wolfeidau
0
90
Getting Into Vue.js
wolfeidau
0
210
AWS Automation With Lambda
wolfeidau
1
110
Ansible and Cloudformation
wolfeidau
1
250
Docker Security
wolfeidau
0
220
Building a Proxy in Go
wolfeidau
2
440
Using JWT to Authenticate Microservices
wolfeidau
1
280
Managing Secrets IN AWS
wolfeidau
0
170
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
160
Other Decks in Programming
See All in Programming
AmebaブログはKMPから卒業します
kmars0605
0
340
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
970
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
370
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
310
GraphQL の onError と Nullability のこれから
quramy
0
210
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
220
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
オーケストレーション記述言語 Katari
yukikurage
0
250
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
2.3k
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
370
AI-Powered Domain-Driven Design
ziobrando
0
430
Featured
See All Featured
Marketing to machines
jonoalderson
1
6k
Six Lessons from altMBA
skipperchong
29
4.6k
Speed Design
sergeychernyshev
33
2.2k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
380
Designing Powerful Visuals for Engaging Learning
tmiket
1
650
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
670
Raft: Consensus for Rubyists
vanstee
143
7.9k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
330
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
660