Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
新たなマイクロサービス取り組みの実例
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
eguchij
July 19, 2023
Technology
12k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新たなマイクロサービス取り組みの実例
2023/7/19のTECH PLAYでの発表資料です。
https://techplay.jp/event/908123
eguchij
July 19, 2023
Other Decks in Technology
See All in Technology
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
130
omasushiというライブラリを作った
polidog
PRO
0
150
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.7k
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
170
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
320
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
140
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
640
Screen Lens - 今見てる画面を翻訳する
komagata
0
140
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
110
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
170
Tab5をRubyで動くパソコンにする
kishima
2
270
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
130
Featured
See All Featured
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
490
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Producing Creativity
orderedlist
PRO
348
41k
Crafting Experiences
bethany
1
310
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
GraphQLとの向き合い方2022年版
quramy
50
15k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
0 新たなマイクロサービス取り組みの実例 株式会社一休 宿泊プロダクト開発部 バックエンド開発チーム 江口 潤 技術負債に立ち向かうエンジニアを助けるマイクロサービス化 一休の7年間の取り組み事例から紐解く成功と失敗を分けるポイント 2023/07/19
1 株式会社一休 宿泊プロダクト開発部 バックエンド開発チーム 江口 潤 2022年1月に一休へ中途入社。宿泊予約サービスのバック エンド開発・運用及び、決済マイクロサービスの新規開発 に従事。 最近はインスタでプレーリードッグを見る事にはまってい
ます。
2 目次 • 決済プラットフォーム概要 • 技術選定 • 境界線をどこに引くか • 整合性を崩さない
• 今後の展開
決済プラットフォーム概要
4 カード決済モジュールが3つ?
5 一休サービス 決済プラットフォームサービス導入前 外部サービス GMO PG PAY.JP 決済モジュール モジュール① モジュール③
モジュール② レストラン予約 スパ予約 宿泊予約 決済予定 決済履歴 会計 類似の決済モジュールが乱立。 凝集度が低く各サービスに決済関連機能が漏洩し、 再利用するメリットが少ない。 新サービス追加の度に決済関連機能を開発。 決済予定 決済履歴 会計 決済予定 決済履歴 会計
6 一休サービス 決済プラットフォーム 決済プラットフォームサービス導入後 外部サービス GMO PG PAY.JP 決済予定 決済履歴
会計 国内宿泊予約 レストラン予約 スパ予約 決済に関連する機能を集約。 再利用するメリットが多く、 新サービスの開発が容易。
7 一休サービス 決済プラットフォーム まずは新規サービスへ決済プラットフォームを導入中 ふるさと納税 外部サービス GMO PG PAY.JP 国内宿泊予約
レストラン予約 スパ予約 新サービスA 新サービスB 決済予定 決済履歴 会計
技術選定
9 主要技術スタック フロントエンド バックエンド インフラ 柔軟にオートスケールされる Aurora Serverless v2を採用
境界線をどこに引くか
11 曖昧なドメイン境界(1/8) 一休サービス 予約 精算 決済プラットフォーム 決済予定 決済履歴 会計? 会計は一見、決済プラットフォームの持ち物ではなさそう。
12 曖昧なドメイン境界(2/8) 前提として、カード決済額は一休を一度経由し、 宿泊施設様へ振込がされる。 そのため、一休でお金の管理(会計管理)が発生。
13 曖昧なドメイン境界(3/8) 決済プラットフォーム起点で債務が増加し、 一休サービス起点で債務が減少する。 この債務の増減を、決済プラットフォームと 一休サービスのどちらで管理すべきか?
14 一休サービス 決済プラットフォーム 曖昧なドメイン境界(4/8) ふるさと納税 外部サービス GMO PG PAY.JP 国内宿泊予約
レストラン予約 スパ予約 新サービスA 新サービスB 会計 会計 会計 会計 会計 会計 各一休サービスに会計管理を任せる場合、 サービスを新しく作る度に同様の実装が 必要になってしまう。 決済予定 決済履歴 会計
15 一休サービス 決済プラットフォーム 曖昧なドメイン境界(5/8) ふるさと納税 外部サービス GMO PG PAY.JP 国内宿泊予約
レストラン予約 スパ予約 新サービスA 新サービスB 会計 会計 会計 会計 会計 会計 会計管理も集約することで、 新規サービス開発が容易に。 決済予定 決済履歴 会計
16 曖昧なドメイン境界(6/8) 経理業務として、最終的には会計データを会計システムに 連携している。 会計管理機能を各一休サービスに持たせると、 経理担当者もそれぞれの画面を操作する必要があって手間。
17 曖昧なドメイン境界(7/8) 会計管理機能を決済プラットフォームに集約し、 経理担当者の手間を軽減。
18 曖昧なドメイン境界(8/8) 一休サービス 予約 精算 決済プラットフォーム 決済予定 決済履歴 会計 結論、新サービス開発時のコストと経理担当者の負担軽減のため、
(決済に関わる)会計管理機能は決済プラットフォームに集約した。 ドメインを跨ぐ機能はプラットフォーム側に寄せた方が良さそう。
19 どこまでを共通化すべきか(1/3) バッチ処理で決済が行われており、決済に失敗した場合に お客様へカード変更依頼メールをお送りする場合がある。 このメールも各一休サービスを介さず、 決済プラットフォームから直接送る案があった。
20 どこまでを共通化すべきか(2/3) カード変更依頼のメールには、 一休サービスしかもっていない予約情報などを出したい。
21 どこまでを共通化すべきか(3/3) 結論、決済プラットフォームからは通知をするのみとし、 メール送信は一休サービスで行うことにした。 ドメイン知識がない場合は処理を移譲したほうが良さそう。
整合性を崩さない
23 ざっくりシステム構成
24 失敗したら自力でロールバック(補償トランザクション)
25 バッチでも整合性をチェック 補償トランザクション失敗の可能性もあるため、 バッチによって二重で整合性を担保。
今後の展開
27 一休サービス 決済プラットフォーム 今後の展開 ふるさと納税 外部サービス 国内宿泊予約 レストラン予約 スパ予約 新サービスA
新サービスB GMO PG PAY.JP 決済業務をプラットフォームで一元管理するため、 既存サービスにも導入を進める予定。 決済予定 決済履歴 会計
28 まとめ • 凝集度の高いマイクロサービスを作る • ドメインを跨ぐ機能はプラットフォームへ • ドメイン知識がなければ処理は移譲する • 補償トランザクションが失敗する可能性も考慮する