Peter Bourgon on the history of Go kit and what's next

Beyang · · 726 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

undefined

Peter Bourgon is the creator of Go kit.

Strong majority of audience here has heard of Go kit.

What is Go kit?

Go kit is a toolkit for microservices. In the early days, that meant something very specific at SoundCloud (where Peter worked at the time). They were using Finagle for microservices, but there wasn’t a Go equivalent, so Go started to lose favor among the team. Peter started Go kit to address that issue. Today Go kit works for both strict microservices architectures and also “elegant monoliths” (monoliths that are separated nicely into separate modules).

github.com/go-kit/kit has 7,253 stars.

In the early days, he based it on Finagle at a high level. In the early days there were RFCs to fill in the details and get useful feedback / discussion from the community. Using examples was key in grounding these discussions. Overall structure of the project hasn’t really changed. They continued like this until June 2016 without any tagged versions.

A brief history of Go kit

Initial commit: 3 Feb 2015.

June 2016

  • 62 contributors
  • Open tracing stuff (zipkin, lightstep)
  • First tagged version
  • go-kit log

v0.2 to v0.4

  • “package go-kit log: this is how logging should work in Go”
  • mapping from xnet.context to std lib context
  • lots of bug fixes
  • some breaking changes

v0.5: big release

  • worked closely with yuri at Uber (jager and zap logger) to overhaul package sd. Uber apparently uses Go kit and package sd for most of their internal Go microservices
  • some breaking changes, but v0 ¯_(ツ)_/¯

Today (v0.6.0)

  • shooting for October-ish release date
  • want to refactor package metrics; doesn’t like using it in current state

v1.0.0

  • targeting Jan 2018 release (no promises!)

TODO

People have asked for

  • package metrics refactor
  • kitgen (tackling verbosity problem in Go kit). Looking for people to take Peter’s vision and translate to code (he can’t handle dealing with Go AST package)!
  • different transport protocols (rabbit, nats, kafka, sqs)
  • gRPC streaming
  • Whatever people at this meetup ask for!

Governance and call for contributors

  • BDFL is okay so far, but it can be slow at times
  • would love to delegate more than in the past; makes sense to delegate on a per-package basis. Precedent is Chris Hines’ work on and ownership of package log, Bas van Beek on transport/grpc and tracing
  • So if you want to contribute to a 7,253-star project, reach out!

有疑问加站长微信联系(非本文作者)

本文来自:sourcegraph

感谢作者:Beyang

查看原文:Peter Bourgon on the history of Go kit and what's next

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

726 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传