Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サーキットブレーカー 〜 有料契約店舗数 国内 No.1 ECサービスに神を宿す 〜 / pepabo_ec_tech_mtg01
Search
Akihito Nakano
March 09, 2017
Programming
1
3.6k
サーキットブレーカー 〜 有料契約店舗数 国内 No.1 ECサービスに神を宿す 〜 / pepabo_ec_tech_mtg01
2017/03/09 第1回 EC事業部 Tech MTG
Akihito Nakano
March 09, 2017
Tweet
Share
More Decks by Akihito Nakano
See All by Akihito Nakano
OpenAPI Generator Meetup #1
akihito_nakano
1
1k
Libraの現状と技術面をざっくりと / astudy20191114
akihito_nakano
4
990
カート刷新プロジェクトにおけるOpenAPIを活用したコード自動生成の今と明日 / astudy20190419
akihito_nakano
2
550
平静を保ち、コードを生成せよ 〜 OpenAPI Generator誕生の背景と軌跡 〜 / gunmaweb34
akihito_nakano
24
51k
プライベートAPIのクライアントをいい感じにしたい / pepabo_ec_tech_mtg02
akihito_nakano
0
1.6k
並行・並列処理のテストは難しい
akihito_nakano
2
3.9k
並列処理で消耗しているかたへ - Snidel のご紹介 -
akihito_nakano
4
3.2k
Other Decks in Programming
See All in Programming
Node.js v22 で変わること
yosuke_furukawa
PRO
9
3.5k
Ruby Pattern Matching
bkuhlmann
0
930
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
190
Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets
hollycummins
0
230
Code Reviews
bkuhlmann
4
890
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
1
110
Polars入門
daikikatsuragawa
1
100
Tailwind CSSを本気でカスタマイズする方法
fsubal
13
5.3k
PostmanでAPIの動作確認が楽になった話
h455h1
0
170
Site Reliability Engineering for GMO
pyama86
8
1k
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
210
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
110
Featured
See All Featured
Visualization
eitanlees
136
14k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
Thoughts on Productivity
jonyablonski
58
3.8k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
357
22k
How GitHub (no longer) Works
holman
304
140k
Practical Orchestrator
shlominoach
182
9.7k
Testing 201, or: Great Expectations
jmmastey
28
6.4k
Ruby is Unlike a Banana
tanoku
96
10k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
21
1.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
243
12k
Transcript
தڿਓ(.01&1"#0JOD ୈճ&$ࣄۀ෦5FDI.5( αʔΩοτϒϨʔΧʔ ʙ༗ྉܖళฮࠃ/P&$αʔϏεʹਆΛ॓͢ʙ
8&#ΞϓϦέʔγϣϯΤϯδχΞ &$ࣄۀ෦Χϥʔϛʔγϣοϓάϧʔϓ தڿਓ ͖͋ͬʔ !/","/0@"LJIJUP ಛ߈ୂνʔϜ IUUQTBDLJOUPTIHJUIVCJP
ಛ߈ୂ νʔϜ
None
܅ಛ߈ୂνʔϜͰಇ͔ͳ͍͔ʁ ࠷৽ใΛνΣοΫˠ DPMPSNF@TVJDJEFTRVBE
Χϥʔϛʔγϣοϓ"1*Λத৺ʹͨ͠ܗଶʹ γϑτ͍ͯ͘͠ ΧϥʔϛʔγϣοϓAPIʹڧ͘ґଘ͢Δ ˣ
"1*Λத৺ʹ༷ͨ͠ࢠ
"1*ͷෛՙ͕ߴ·Δ
"1*ʹґଘ͢ΔαϒγεςϜͷෛՙߴ·Δ
Χεέʔυো IUUQEFWFMPQFSTMJOFDPSQDPNCMPHKB Q ࢄαʔϏεڥͷ$JSDVJU#SFBLFSͷద༻-*/&&OHJOFFST`#MPH IUUQTFOXJLJQFEJBPSHXJLJ$BTDBEJOH@GBJMVSF $BTDBEJOHGBJMVSF8JLJQFEJB
αʔΩοτϒϨʔΧʔͰোͷ࿈Λ͙
͜ͷൃදͷΰʔϧ wαʔΩοτϒϨʔΧʔͷඞཁੑΛڞ༗Ͱ͖ͯΔ͜ͱ wαʔΩοτϒϨʔΧʔͷΈΛڞ༗Ͱ͖ͯΔ͜ͱ w(anesha Λ࠾༻͢Δ͖ཧ༝Λڞ༗Ͱ͖ͯΔ͜ͱ
αʔΩοτϒϨʔΧʔͱ IUUQTKBXJLJQFEJBPSHXJLJαʔΩοτϒϨʔΧʔ੍ גࣜࢢઌऔҾʹ͓͍ͯՁ͕֨ҰఆҎ্ͷมಈΛىͨ͜͠߹ʹɺ ڧ੍తʹऔҾΛࢭΊΔͳͲͷાஔΛͱΔ੍Ͱ͋Δɻ ిྲྀ͕ྲྀΕա͗ͨ࣌ʹɺൃͳͲΛ৯͍ࢭΊΔిݯΛམͱ͢ిؾճ࿏ͷःஅثʢαʔΩοτ ϒϨʔΧʔʣͱࣅ͍ͯΔ੍Ͱ͋ΔͨΊɺ͜ͷΑ͏ʹݺΕΔ IUUQTKBXJLJQFEJBPSHXJLJःஅث ःஅثʢ͠ΌͩΜ͖ɺӳදهɿ$JSDVJU#SFBLFSʣɺిྗճ࿏ɾిྗػثͷਖ਼ৗಈ࡞࣌ͷෛՙిྲྀΛ ։ด͢Δͱͱʹɺอޢܧిثͱ࿈ܞͯ͠ࣄނిྲྀʢಛʹབྷࣄނిྲྀʣͳͲΛःஅ͢Δ͜ͱʹΑΓ ෛՙଆͷઃඋΛอޢ͠ɺ্ྲྀଆͷࣄނٴΛࢭ͢Δ։ดثͰ͋Δɻ
IUUQTXXXQIPUPBDDPNNBJOEFUBJM
αʔΩοτϒϨʔΧʔͱ
αʔΩοτϒϨʔΧʔͱ ϑΣΠϧϑΝετ
αʔΩοτϒϨʔΧʔͱ $JSDVJU#SFBLFS IUUQTNBSUJOGPXMFSDPNCMJLJ$JSDVJU#SFBLFSIUNM .BLJOHUIF/FUqJY"1*.PSF3FTJMJFOU IUUQUFDICMPHOFUqJYDPNNBLJOHOFUqJYBQJNPSFSFTJMJFOUIUNM ϒϩά ຊ
αʔΩοτϒϨʔΧʔͱ IUUQTNBSUJOGPXMFSDPNCMJLJ$JSDVJU#SFBLFSIUNM w αʔΩοτϒϨʔΧʔ͕ϦϞʔτίʔϧΛࢹ͢Δ w ࣦഊ͕ᮢʹୡͨ͠Β࡞ಈ͢Δ w Ҏ߱αʔΩοτϒϨʔΧʔ͕ΤϥʔΛฦ͢
αʔΩοτϒϨʔΧʔͱ IUUQTNBSUJOGPXMFSDPNCMJLJ$JSDVJU#SFBLFSIUNM w ͭͷঢ়ଶ w $MPTFE w 0QFO w )BMG0QFO
αʔΩοτϒϨʔΧʔͷ࣮ wIUUQTHJUIVCDPN/FUqJY)ZTUSJY wIUUQTHJUIVCDPNMJOFBSNFSJB wIUUQTHJUIVCDPNDPPLQBEFYQFEJUPS wIUUQTHJUIVCDPNFKTNPOUBSUVSQIQDJSDVJUCSFBLFS
αʔΩοτϒϨʔΧʔͷ؊ w ޭʗࣦഊΛΧϯτ w Τϥʔ w Τϥʔ w ͭͷঢ়ଶ w
$MPTFE 0QFO )BMG0QFO w োͷݕग़ʗ෮چͷஅΛγϯϓϧʹݡ͘ w αʔΩοτϒϨʔΧʔ͕ϘτϧωοΫʹͳͬͯ͠·ͬͨΒຊస
(BOFTIB IUUQTHJUIVCDPNBDLJOUPTIHBOFTIB w (BOFTIB Ψωʔγϟ w ώϯυΡʔڭͷਆ༷ w 1)1
w Τϥʔ
(BOFTIB
(BOFTIB $ganesha = Ackintosh\Ganesha\Builder::build([ ‘failureRate’ => 50, ‘minumumRequests’ => 100,
]); if ($ganesha->isAvailable(‘serviceName’)) { try { Api::request(); $ganesha->success(‘serviceName’); } catch (Api\ServiceUnavailableException $e) { $ganesha->failure(‘serviceName’); } }
σϞ
σϞ IUUQTHJUIVCDPNBDLJOUPTIHBOFTIBUSFFNBTUFSFYBNQMFT σϞͰͬͨεΫϦϓτ
(BOFTIB w͍ͭ࡞ಈͨ͠ͷ͔ ऩଋͨ͠ͷ͔ Ѳ͍ͨ͠ wҙͷॲཧΛϑοΫͰ͖ΔͷͰϩάʹు͘͜ͱͰ͖Δ w(BOFTIB͕ར༻͢ΔετϨʔδͰো͕ى͖ͨΒʁ wԿ͠ͳ͍ɻϦΫΤετΛڐՄ͚ͭͮ͠Δɻ ϑΣΠϧαΠϨϯτ wҙͷॲཧΛετϨʔδোʹϑοΫͰ͖ΔͷͰϩάʹు͘͜ͱͰ͖Δ
wͦͷଞͷΞϐʔϧϙΠϯτ wϓϥΨϒϧͳΞμϓλʔ w૾ͷΩϟϥΫλʔ͕1)1ʹ߹ͬͯΔ w໊લ͕ྑ͍ wਆ༷
༗ྉܖళฮࠃ/P&$αʔϏε ʹ ਆΛ॓͢
͜ͷൃදͷΰʔϧ wαʔΩοτϒϨʔΧʔͷඞཁੑΛڞ༗Ͱ͖ͯΔ͜ͱ wαʔΩοτϒϨʔΧʔͷΈΛڞ༗Ͱ͖ͯΔ͜ͱ w(anesha Λ࠾༻͢Δ͖ཧ༝Λڞ༗Ͱ͖ͯΔ͜ͱ