Whimlog

寝るまでが一日

mercari.go #9 に参加した

mercari.connpass.com

Gopher ライブドローイングのご説明

@tottie san

  • Gopher のスタンプを作った話
  • 何も貼れないけど、ボツになったスタンプたち(めっちゃかわいい
  • お気に入りスタンプ

protoactor-goでPregelを作った話

@rerorero san

ちょっと自分には難しかったのでメモが取れてない

メルペイでの残高管理の話

@knsh14 san

  • balance service
    • 残高を管理するためのマイクロサービス
    • レイヤードアーキテクチャっぽい
    • view はない(api なので
    • gRPC を返す
  • トランザクションの貼り方
  • DB について
  • API の実装
    • 各種残高の増減
    • 上位サービス Payment Service との通信
  • RPC 設計
    • どの残高を捜査刷る時でも同じように扱える -> 共通のインターフェース
    • Payment でのロールバックに対応したい
  • 冪等性を担保するための仕組み
    • payment の各フェーズでリトライができるかを考える
    • 2重取り引きを防ぐ
    • 参照形
      • 更新がかからないので冪等性は必要ない
    • 更新系
      • 途中でタイムアウトしたら?
      • 叩く側のマイクロサービスがリトライしたら?
      • => 冪等性の担保が必要
      • 1つの取引で処理は1度だけ
  • 取引の履歴
    • 何か買ったときのお客様情報の調査
      1. 取引レコードからの産出 => 会計にも使える
      1. 取引後の残高スナップショット
  • 取引後の残高スナップショット
    • 消費、追加などの結果のスナップショットを保存
    • 前のスナップショットの ID をたどることができる
  • トランザクションの最終段階でスナップショットを作成
    • 前のスナップショットに最新の ID を追加する
  • まとめ
    • メルペイの中で一番裏で動いている
    • マイクロサービスで意識しないといけないこと
    • バランスサービスはメルペイの中でもシンプルなサービスだけど考えることが多い

マイクロサービスの 1 サービス単位でどういう事に気を付けないといけないのか気になっていたので、とても参考になった。

Readable code in Go

@akkie30 san

The Go Playgroundをコマンドラインから扱う

@tenntenn san

Gopher イラスト発表

@tottie san

  • Gopher さんのお披露目
  • 合計 9 枚の作品がライブペインティングで完成!
  • スタンプ制作中は追いこまれた
  • Gopher. スタンプをリリースしたことで温かいフィードバックをもらえた
  • 絵を書くことに価値を見いだせた

ライブドローイングや、リモートからの発表など楽しい内容が盛りだくさんでとても楽しかった。mercari.go のたびに go が楽しくなるので、引き続き参加したい!