gRPC + Protocol Buffers でバックエンドを開発していると、他サービスや Protocol Buffers プラグインの proto ファイルの管理をしたくなる場合があります。 よくある Protocol Buffers のプラグインではリポジトリを go get してコンパイル時にパスを通すよう指示されますが、どのリビジョンの proto ファイルを使ってスキーマを定義しているのかが不明瞭になります。また、 proto ファイルの場所が散らばるのでコンパイルのコマンドも複雑になります。

本記事では、Protocol Buffers とは何かから、なぜ依存管理が必要か、依存している proto ファイルを管理するにはどうすれば良いかについて述べます。

続きを読む

grpc-gateway は gRPC のエラーコードと HTTP のステータスコードをよしなに変換してくれますが、クライアントにエラーの理由を知らせる場合にはエラーレスポンスをカスタマイズする必要があります。

本記事では grpc-go + grpc-gateway でカスタムエラーレスポンスを返す方法について、実装例を出しながら紹介します。

続きを読む

OpenCensus Meetup vol.1に参加してきました。本記事ではイベントで話されたことをまとめます。

イベントでは OpenCensusの概要紹介や、OpenCensusを使ってみて便利だったところと辛かったところ、辛さを解消するために行ったことについて話されていました。

OpenCensusの概要の把握や、深掘りするかどうかの判断の参考になれば幸いです。

続きを読む

本番環境でのみ起こるようなパフォーマンス問題の調査は、簡単ではありません。そのようなボトルネックの調査では、どの処理がどのような入力で時間がかかるかを特定することが重要です。

本記事では、メトリクスの収集や処理のトレースを行うためのフレームワークであるOpenCensusとその可視化、分析サービスのStackdriver Traceを使ってGoのアプリケーションの処理時間を可視化する方法を紹介します。

続きを読む

Cloud Functions には、しばらく関数が使われないとスリープし、スリープ後、最初のリクエストの処理に時間がかかるという性質があります。関数全てを定期的に叩くことで、リクエストの処理に時間がかかってしまう問題を避けることが可能です。本記事では、Cloud Functionsにデプロイされている関数全てを定期的に叩く方法を紹介します。

続きを読む

Cloud Firestore を使う利点の一つとしてリアルタイムに変更を取得できる点が挙げられます。公式ドキュメントでは Go SDK はまだサポートされていないと書かれていますが(2018/12/5 時点)、機能自体は SDK に実装されています (v0.21.0 リリースノート)。本記事では、Firestore の Go SDK で Firestore のリアルタイムアップデートを取得する方法について述べます。

続きを読む

プロフィール画像

Soichi Sumi

Engineering Manager / Senior Enginner @Ginco Inc.

Resume(JP): https://findy-code.io/share_profiles/x0DSDZdDMzr0u

About job offer(JP): https://www.notion.so/About-Job-Offers-e4d0d60425fc420e88de3f983ff4f933


Software Engineer @ Ginco Inc.

Japan, Tokyo