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

Kyash Micro Service Architecture

omo
April 18, 2022

Kyash Micro Service Architecture

omo

April 18, 2022
Tweet

More Decks by omo

Other Decks in Technology

Transcript

  1. 4 自己紹介 - Omotani Kouhei - Twitter: @k_omotani - 2020年2月入社

    - Kyashのサーバーサイドを広く触ってます - 携わった機能 - カテゴリー機能、共有口座機能、他 はじめに
  2. pf-api Shared DB pf-lending Mobile app 9 Kyash内部の構成 - “platform-hoge”サービス群

    - platform-apiがRest APIを提供し mobileからのアクセスを受け付ける - サービス間の通信は古いものは Rest API、比較的新しく作成したものは gRPCを用いている System overview SQS pf-lending-consumer DB - pf-payout DB pf-notification Push通知 pf-payment pf-payment pf-payment VisaNetなど
  3. 10 Kyash内部の構成 - マイクロサービスは業務の関心毎ごとに切り 分けられている - 大体 1 serviceに1 repository

    - 決済周りの処理を行う platform-payment, 入 出金を管理するplatform-topupなど - Shared DBに繋ぐ部分をライブラリ化 - gRPCのproto定義やpub/subのメッセージ定 義を置いてるplatform-protoとかもある - 2022/04/14 現在で - Org配下に166repo - platformで絞ると75repo System overview
  4. 11 Kyash内部の構成(非同期処理周り) - 定期実行ジョブ的なものは ECS scheduled taskを使うことが多い - 秘伝のjobもあるが... -

    Message Consumer - SQSにキューイングしそれをconsumeすることで非同期に処理している箇所も - この後のLTで話が出るかも? System overview
  5. 14 Shared DB - これが一番デカいと思う - Kyashでは複数のサーバーから共通 のDBに接続している - 各サービス毎にDBユーザーを割り

    振って接続可能なテーブルを管理し てる つらみ Service A Shared DB Service B Service C internal DB internal DB
  6. 16 Shared DB - でもこれのお陰で残高変動周りのトランザクション管理が楽に出来ている - 外部システムとの整合性を取るための試み等は既に実績あり - この後のejimaさんの話で聞けます 裏話

    - Kyashでは過去にKyash Directという別基盤のシステムを構築 - その時はTry,Confirm,CancelのTCCパターンのメッセージ駆動でトランザクション管理を 行っていた - 登壇資料 - 残高処理周りのDB分割を進めようとしている つらみ