This is a creation in Article, where the information may have evolved or changed.
JP Robinson, principal engineer at the New York Times, had "drunk Peter's Koolaid" with respect to Go kit.
Github.com/nytimes/gizmo adapts Go kit for use inside a production ecosystem with a bunch of existing legacy services. The NYTimes uses it across almost all their production Go services.
About the New York Times Engineering
- Traffic increasing (#trumpbump)
- Lots of microservices, but also some monoliths
The gizmo is a complementary-Go kit that "meets it in the middle."
Go running in production @ nytimes for personalization, saved articles, messaging and email systems, multi-armed Bandits (presumably for ads?), analytics and suggestions, guides and how-to, My account pages.
As we ' ve grown, we ' ve needed to consolidate and standardize on ways of doing things. Would love to use Go kit as it's, but there was some issues. Some of Go Kit ' s explicit non-goals is Gizmo ' s goals. For example:
- Go Kit non-goal:supporting Messaging patterns other than RPC. But NYTimes needs to support messaging patterns other than RPC
- Go Kit Non-goal:be opinionated. But NYTimes needed a somewhat opinionated framework at NYTimes to unify a bunch of disparate services.
Gizmo Packages
- Gizmo/server/metrics (based on Go kit metrics)
- Gizmo/pubsub
As time goes on, the Gizmo's packages is starting to the look and the more like Go Kit ' s. More and more of their developers is using Go kit.
Just open-sourced Github.com/nytimes/marvin, a go-kit HTTP server for the APP Engine standard environment. Similar to the Gizmo, tries to give you a composed the framework for what a Web server looks like.