Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microservices implementation guide in Go at Mer...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Microservices implementation guide in Go at Mercari Inc

Talk slide about microservices implementation guide in Go at Mercari Inc. (Japanese)
@Go Conference 2018 Autumn Sponser Session (Mercari Inc) .

Avatar for Hidetatsu Yaginuma

Hidetatsu Yaginuma

November 25, 2018
Tweet

Other Decks in Programming

Transcript

  1. テンプレートプロジェクトについて 基本的な機能 ミドルウェア grpc-echosystem/go_grpc_middleware の Server Chain(Interceptors) の仕組みを使用している WithUnaryServerChain() には複数のintercepterを登録でき

    る WithUnaryServerChain(A(), B(), C()) と実行すること で、 A -> B -> C -> endpoint -> C -> B -> A と呼び 出される ここでDatadog、SentryなどのMiddlewareを登録している
  2. opts := []grpc.ServerOption{ grpc_middleware.WithUnaryServerChain( // Logger grpc_zap.UnaryServerInterceptor( config.Logger ), //

    Datadog grpc_dd.UnaryServerInterceptor( grpc_dd.WithServiceName(config.DDServiceName) ), // 認証、Sentry 、Recover など ), grpc_middleware.WithStreamServerChain( grpc_zap.StreamServerInterceptor(config.Logger), ), } return newServer(echoService, config.Logger, opts...)