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
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
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Real World Mercari API Architecture
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kazegusuri
February 01, 2018
Technology
6.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Real World Mercari API Architecture
Bonfire API #1
kazegusuri
February 01, 2018
More Decks by kazegusuri
See All by kazegusuri
go-sqlite3を使ってCloud Spannerエミュレーターを作ってみた / Cloud Spanner emulator with go-sqlite3
kazegusuri
5
6.8k
handy-spanner GCPUG
kazegusuri
4
2.1k
Open SKT: メルペイ開発の裏側 / builderscon tokyo 2019 Open SKT
kazegusuri
22
28k
Keep watching and extending features of gRPC
kazegusuri
3
2.7k
Testing with microservices in merpay
kazegusuri
10
11k
gRPC and REST with gRPC in practice
kazegusuri
19
8.2k
Fluentdで始めるPrometheus / Prometheus Tokyo Meetup #1
kazegusuri
1
2k
GRPCの実践と現状での利点欠点 / Go Conference 2016 Spring
kazegusuri
44
32k
OutputとBufferedOutputの間の何か
kazegusuri
2
3.5k
Other Decks in Technology
See All in Technology
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
460
【Oracle AI SPOTLIGHT ウェビナー】事例から見る!なぜOCIが選ばれたのか ― AI時代のクラウド戦略を紐解く ―
oracle4engineer
PRO
1
140
生き様としてのSRE
hokkai7go
1
140
AI秘書と毎日働くのはもう当たり前。開発以外の業務に足りない機能をどう埋める?
minorun365
PRO
4
2k
E2Eってつらくないですか?E2Eの管理コストを下げる手段とその実践
akaboshinit
6
2.8k
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
2.6k
今から始めるAWS環境の暗号移行 - ポスト量子時代に備える
sato4mi
0
140
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
590
GitHub、使う?使わない?
happysamurai294
0
130
AIコーディングエージェント開発_全体像
happysamurai294
0
140
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
400
"AWSはちょっと苦手"でも大丈夫。AWS Blocks で手軽に作る Flutter のバックエンド #FlutterKaigi
tacck
PRO
0
110
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
The Curious Case for Waylosing
cassininazir
1
590
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Facilitating Awesome Meetings
lara
57
7.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Design in an AI World
tapps
1
380
Balancing Empowerment & Direction
lara
6
1.4k
Docker and Python
trallard
47
4.2k
Designing for Timeless Needs
cassininazir
1
540
Speed Design
sergeychernyshev
33
2.2k
Transcript
Real World Mercari API Architecture Bonfire API#1 Masahiro Sano (@kazegusuri)
自己紹介 • 佐野 正浩(@kazegusuri) • Mercari, Inc → Souzoh, Inc
→ merpay, Inc • Principal Software Engineer • サーバーサイドエンジニア • Goで決済システム全般を開発中 2
3
昨年末のMercari Advent Calendar 2017の 記事中にあった 「ソースコードのフォーク」 についてお話します 4
アーキテクチャ(~2016/12) 5 Monolithic API Monolithic API UK JP US Mercari
Client Mercari Client Atte API Atte Client 1 ソースコード 1 ソースコード
クライアントフォーク(2016/12) • アプリのソースコードをJP/US/UKでフォーク • リージョン固有の実装が複雑化 • テスト不足・QAの過負荷 • UKスタート •
US First 6
USアプリ刷新(2016/12) • フルスクラッチで開発 • Protobuf導入 • Microservice化に向けてAPI Gateway導入 • 株式会社メルカリの導入事例:Kubernetes
を駆使したマイクロサービス化 でグローバルサービスの開発効率を劇的に向上 • https://goo.gl/xcP4bb 7
アーキテクチャ(2016/12) 8 Monolithic API Monolithic API Monolithic API UK JP
US Mercari Client Mercari Client Mercari Client New Mercari Client API Gateway Atte API Atte Client 1 ソースコード
続々リリース (2017/3-5) • 2017/3 UK アプリリリース • 2017/4 US 新アプリ一本化
• Microserviceの本格導入 • 2017/5 JP メルカリカウルリリース 9
アーキテクチャ(2017/5) 10 Monolithic API Monolithic API Monolithic API UK JP
US Mercari Client Mercari Client New Mercari Client API Gateway Atte API Atte Client 1 ソースコード Kauru API Kauru Client Microservice
APIフォークの検討 • 増えてくるJPのアプリ • 構成の異なるUS/UK • メルペイに向けてのアーキテクチャ変更 • 2017/10 APIフォーク
11
アーキテクチャ(2017/10~) 12 Monolith ic API Monolithic API Monolithic API UK
JP US Mercari Client Mercari Client New Mercari Client API Gateway Atte API Kauru API MS MS MS MS MS Maisonz API MS MS MS Souzoh merpay MS MS MS
APIフォークの理由 • APIのコード的な側面 • 組織的な側面 • Microservice化へのアプローチの違い 13
APIのコード的な側面 • リージョン毎にやっていることが違いすぎる • API側で違いを吸収する必要がなくなってきた • リージョン毎に独立したエンドポイント • 修正したときに全アプリでQAするのが大変 14
組織的な側面 • 日本からUS開発の割合の変化 • 新アプリ化の時期で50:50 • US開発の現地化 • お互いが独立して異なる目的で同じソースを触る 15
Microservice化へのアプローチの違い • JPでは既存機能の共通化、プラットフォーム化が重要 • 既存機能のMicroservice化 • USでは新規機能をどんどん試していく • 新規機能をMicroservice化 •
既存機能はあまり変更しない 16
APIフォーク後 • フォークしたことでリージョン間の問題は解決 • ついでにソースコードは驚く程わかりやすく… • JPでの開発が進んだことで同じ問題がJP内でも • ソウゾウのプロダクト •
Nowやメルカリチャンネルなどの新領域 • メルペイ 17
未来に向けて • JPでもAPI Gatewayの導入(予定) • Microservice化の推進 • 異なるチームで同一システムを開発するのは難しい(個 人的感想) •
Microserviceでチームで閉じた開発体制 • システムの複雑化→運用の複雑化 • Microservice基盤の整理 • Kubernetes • CI/CD • Metrics/Tracing/Monitoring 18