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
モダンなアーキテクチャでゼロから作る証券基盤
Search
Takuya Oki
July 21, 2020
Technology
1
250
モダンなアーキテクチャでゼロから作る証券基盤
Takuya Oki
July 21, 2020
Tweet
Share
Other Decks in Technology
See All in Technology
cgroup v2 で何が変わったのか / TechFeed Experts Night #28
tenforward
2
150
5分で分かる(かもしれない) Vector engine for OpenSearch Serverless
tsukuboshi
1
380
Observabilityジャーニーを実現するためのAWSサービス:CloudWatch編
o11yfes2023
0
140
大規模言語モデル (LLM)における低精度数値表現
pfn
PRO
3
770
AI JIMY - 登壇(インストール編)
hanacchi
0
150
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
210
RailsConf 2024 Keynote "Startups on Rails in 2024"
irinanazarova
0
730
TypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略
yanaemon
6
1.2k
AWS Observability 関連最新アップデート
o11yfes2023
0
100
自らを知り外と繋がる、日経のエンジニア採用とDevRel活動/devreljp92
nishiuma
2
220
#phpconkagawa レガシーコードにもオブザーバビリティを 〜少しずつ始めるサービス監視〜
yamato_sorariku
0
510
複雑なビジネスルールに挑む:正確性と効率性を両立するfp-tsのチーム活用術 / Strike a balance between correctness and efficiency with fp-ts
kakehashi
5
3.4k
Featured
See All Featured
Embracing the Ebb and Flow
colly
80
4.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Optimizing for Happiness
mojombo
370
69k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
67
14k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
21
1.6k
Product Roadmaps are Hard
iamctodd
45
9.8k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Transcript
ϞμϯͳΞʔΩςΫνϟͰ θϩ͔Β࡞Δূ݊ج൫ גࣜձࣾFinatext ੴڮ३ࢤɾେ࠸ #devsumi Session C-7
ࣗݾհ ʔ ੴڮ३ࢤ • FinatextͰαʔόαΠυͱΠϯϑϥ • ূ݊ϓϥοτϑΥʔϜͷ։ൃʹܞΘΔ • ηκϯϙέοτͷ։ൃʹܞΘΔ •
झຯαφ • twitterɿ@bashi0501
ࣗݾհ ʔ େ࠸ • ͱͱۜߦͰӦۀͬͯ·ͨ͠ • ݱࡏFinatextͰαʔόαΠυΤϯδχΞ • BaaSηκϯϙέοτͷ։ൃӡ༻ʹܞΘΔ •
࠷ۙͷझຯɿےτϨ • twitterɿ@okidoki78
Finatextάϧʔϓʹ͍ͭͯ
ࣄۀ༰ “BtoBforCϞσϧ”Λ࣠ʹɺଟ༷ͳχʔζʹରԠ͢Δۚ༥αʔϏεΛ։ൃɾఏڙ X[EH X[EH 4&)?.3 X[EH .;#3:A. • RZ",C-B1$C*
• >6%BJI • ;#+1$C* • ,<@51$LP"VU • KO(B/41$92#/ S` • YTW\M]Q^ ! D_F D DJF GN-#7.JI (B/42#/S` W\:A038'#=
ۚ༥͕ͬͱΒ͠ʹدΓఴ͏ੈͷதʹ͢Δ VISION MISSION ۚ༥Λ”αʔϏε”ͱͯ͠࠶ൃ໌͢Δ
Finatextάϧʔϓ͕ࢦۚ͢༥αʔϏε૾ ' 34$ ' ) #!." $ $
-% 1( , 34 ' & +/ $ 02*
ূ݊ϓϥοτϑΥʔϜʢBrokerage as a Serviceʣ ূ݊αʔϏεͷڞ௨ػೳΛΫϥυԽ͠ɺଞγεςϜͱͷଓ෦ΛAPIԽ
ैདྷܕखྉθϩͷίϛϡχςΟܕגऔҾΞϓϦ STREAMʢετϦʔϜʣͷհ •ैདྷܕͷגࣜҕୗखྉ͕͍ͭͰԿͰ ແྉ •࠷̑ͰεϐʔσΟʔʹޱ࠲։ઃਃ͠ࠐΈ͕ Մೳ •ΦϯϥΠϯʗΦϑϥΠϯͷίϛϡχςΟΛ ௨ͯ͠ϕςϥϯॳ৺ऀג༑ʹ
ηκϯϙέοτͷհ ηκϯΧʔυ/UCΧʔυձһΛରͱͨ͠ࢿӡ༻αʔϏε •খ࢝͘͞Ί͍ͨॳ৺ऀ͚ͷαʔϏε •ΫϨδοτΧʔυܾࡁͰגࣜͷੵΈཱ͕ͯՄೳ •Ӭٱෆ໓ϙΠϯτͰࢿ৴ୗגࣜͷੵΈཱͯɺ ࢿ৴ୗͷߪೖ͕Մೳ ύʔτφʔɿגࣜձࣾΫϨσΟηκϯ༷
ܦӦ্ͷظ • ࣄۀͷଟ֯Խ • ίΞࣄۀͱͷγφδʔ • Ϋϩεηϧ • ΫϩευϝΠϯͰͷσʔλੳ •
UXͷ্ • ӦརاۀͰ͋ΔҎ্ɺϢʔβʔͱ͓ۚͷΓऔΓଘࡏ
ۚ༥ࣄۀ্ཱͪ͛ͷ՝ • ໔ڐ੍ɾొ੍ͷͷ͕΄ͱΜͲ • ձࣾ৫ • ਓһମ੍ • ཧΦϑΟεͷߏ •
γεςϜίετेԯن ͓࣌ؒۚॳظίετ͕͔͔Δ
BaaSͷղܾ͢Δ՝ • ۚ༥հۀͱ͍͏ϥΠηϯεͰϥΠτʹ • 2021ʹʮۚ༥αʔϏεհۀʯ • ओͳূ݊ۀʢޱ࠲։ઃܾࡁͳͲʣҾ͖ ड͚Δ͜ͱͰମ੍ΦϑΟεͷճආ • WebAPIͰޱ࠲։ઃจൃͳͲΛड͚Δ͜
ͱͰॳظͷγεςϜίετΛճආ
BaaSߏਤ
BaaSͷಛ • ෳͷECSΫϥελʹΑΔϚΠΫϩαʔϏε • ػೳ͝ͱʹେ͖͘ҟͳΔηΩϡϦςΟɾՄ༻ੑɾύϑΥʔϚϯεཁ݅ • ࢢͷ։͍ͯΔ࣌ؒݶΒΕ͓ͯΓɺͦΕʹΑΔίετ࠷దԽ • ϝϯςφϯεೖΕΔ͜ͱͷϋʔυϧͷࠩʢྫɿޱ࠲։ઃ24h։͚͍͍͕ͯͨɺ จΛਂʹด͡Δ͜ͱ༰қʣ
• ͨͩτϥϯβΫγϣϯڥք͍͠… • ଟ͘ͷ֎෦ଓڥɻൃܥɺՁ֨ܥɺόοΫΦϑΟεetc • ͦΕʹ͏ଟ͘ͷόονॲཧ • FIXʢTCP্ͷۚ༥༻ϓϩτίϧʣʹઐ༻ઢଓʢDirect ConnectʣΛར༻ɻ
ηκϯϙέοτߏਤ ۙكʹݟΔ γϯϓϧͳϞϊϦε
ΫϨσΟηκϯ༷ͷհ
ηκϯϙέοτͷੜ
• ࢿ৴ୗɺגࣜͷੵཱࢿ͕ग़དྷΔ • גࣜ1ג୯ҐͰੵཱՄೳʢ௨ৗɺࢢͰചങ͢Δ߹ 100ג୯Ґʣ • ੵཱͷݪࢿʹɺηκϯΧʔυɺӬٱෆ໓ϙΠϯτΛ ར༻͢Δ͜ͱ͕ग़དྷΔ • ͪΖΜΧʔυͰੵཱ͢ΔͱӬٱෆ໓ϙΠϯτஷ·
Δ ηκϯϙέοτͷಛ
• ͪͳΈʹɾɾɾ • ΫϨδοτΧʔυΛ༻͍ͨגࣜੵཱຊॳ • ΫϨδοτΧʔυΛ༻͍ͨࢿ৴ୗͷੵཱຊʹ ͑Δ΄Ͳ ηκϯϙέοτͷಛ
• Ϣʔβͱͯ͠ੵཱʹΫϨδοτΧʔυΛ͍͍ͨ • ͳ͓௨ৗΫϨδοτΧʔυͷखྉ͕ߴͯ͑͘ͳ͍ • גࣜͷചങखྉɿยಓ1%ະຬ • ࢿ৴ୗͷ৴ୗใुɿ0.5~1.5%ఔ • ΫϨδοτΧʔυͷܾࡁखྉɿ3%
• ΫϨδοτΧʔυൃߦձࣾͷΫϨσΟηκϯ༷͔ͩΒͦ͜ग़དྷͨαʔϏε ηκϯϙέοτͷಛ
• ੵཱࢿͷΈ • όονॲཧͷઃܭ ੵཱͷཪଆͷ
• ੵཱࢿͷΈ • όονॲཧͷઃܭ ੵཱͷཪଆͷ
ੵཱࢿͷΈ • ຖ݄8ʹੵཱΛ࣮ࢪ • 1. ηκϯϙέοτͷαʔό͔ΒɺBaaSʹରͯ͠ੵཱϦΫΤετΛ͛Δ • 2. BaaSͰҎԼΛߦ͏ •
ސ٬ͷΫϨδοτΧʔυɾϙΠϯτͷܾࡁ • ܾࡁֹͨۚ͠Λɺސ٬ͷূ݊ޱ࠲ೖۚ • ސ٬ͷޱ࠲ߴΛར༻͠ɺגࣜɾࢿ৴ୗͷࢢͷൃ • 3. ηκϯϙέοτͷαʔόͰɺੵཱ݁ՌΛऔΓࠐΈ
ੵཱࢿͷΈ • ຖ݄8ʹੵཱΛ࣮ࢪ • 1. ηκϯϙέοτͷαʔό͔ΒɺBaaSʹରͯ͠ੵཱϦΫΤετΛ͛Δ • 2. BaaSͰҎԼΛߦ͏ •
ސ٬ͷΫϨδοτΧʔυɾϙΠϯτͷܾࡁ • ܾࡁֹͨۚ͠Λɺސ٬ͷূ݊ޱ࠲ೖۚ • ސ٬ͷޱ࠲ߴΛར༻͠ɺגࣜɾࢿ৴ୗͷࢢͷൃ • 3. ηκϯϙέοτͷαʔόͰɺੵཱ݁ՌΛऔΓࠐΈ
ੵཱࢿͷΈ • ࢿ৴ୗͷ߹ • ϙΠϯτͷܾࡁɾΫϨΧͷܾࡁ → ސ٬צఆೖۚ → ސ٬צఆͰࢢങൃ •
גࣜͷ߹ • ϙΠϯτͷܾࡁ → ސ٬צఆೖۚ → εϚʔτϓϥεͷࣗݾצఆͰࢢങൃ → ΫϨΧͷܾࡁ → ސ٬צఆೖۚ → εϚʔτϓϥεͷอ༗ʢࡏݿʣΛސ ٬͕ങ͢Δ • גࣜͷ߹ɺސ٬͕ΫϨΧܾࡁʹࣦഊͨ͠߹ɺεϚʔτϓϥε͕ࡏݿΛ๊ ͑Δ͜ͱͱͳͬͯ͠·͏
ੵཱࢿͷΈ • ຊདྷגࣜɺࢿ৴ୗͱಉ͘͡ɺΫϨδοτΧʔυܾࡁΛ֬ೝͰ͖͔ͯΒɺࢢ ൃ͍ͨ͠ • ࢿ৴ୗʹֹؔͯۚ͠୯ҐͰങͰ͖ΔͷͰՄೳ • →10,000ԁͷߪೖϦΫΤετʹରͯ͠ɺͪΐ͏Ͳ10,000ԁͰങͭ͢͜ͱ͕Մೳ • ͔͠͠גࣜʹؔͯ͠1ג୯ҐͰ͔͠ങͰ͖ͳ͍
• → 1ג3,000ԁͷ߹ɺ10,000ԁͷߪೖϦΫΤετʹରͯ͠9,000ԁ͔͠ങ͍ ͚Ͱ͖ͳ͍ • ֹۚɺࢢʹൃ͢Δ͜ͱͰॳΊͯ֬ఆ͢Δ • ΑͬͯɺൃޙʹΫϨδοτΧʔυΛܾࡁ͢Δඞཁ͕͋Δ
ੵཱࢿͷΈ • ങൃͷલʹɺΫϨδοτΧʔυʹ10,000ԁܾࡁɾೖۚ͠ɺ༨ͬͨͦ ͷ··ޱ࠲ߴʹ͢ͷͲ͏͔ʁ • ͜ΕΫϨδοτΧʔυͷʮγϣοϐϯάͷݱۚԽʯʹ֘ͯ͠͠·͏ͷͰ ग़དྷͳ͍ • ങൃͷલʹɺܾࡁձࣾʹ10,000ԁͷΧʔυͷ༩৴ͷ֬อΛߦ͍ɺޙʹ 9,000ԁͷΧʔυܾࡁΛߦ͑Α͍ͷͰʁ
• Έ্ɺ10,000ԁͷ༩৴औΓফͤͳ͍ͨΊɺ19,000ԁͷ༩৴͕ඞ ཁͱͳͬͯ͠·͏
• ੵཱࢿͷΈ • όονॲཧͷઃܭ ੵཱͷཪଆͷ
όονͷछྨ • BaaS 㱻 ηκϯϙέοτ • ηκϯϙέοτ͔ΒBaaSੵཱਃΛ࿈ܞ͢Δόον • BaaS͔Βηκϯϙέοτੵཱ݁ՌΛ࿈ܞ͢Δόον •
BaaS୯ମ • BaaSͷதͰ֤ϚΠΫϩαʔϏεʹੵཱਃΛ࿈ܞ͢Δόον • ΫϨδοτΧʔυӬٱෆ໓ϙΠϯτΛܾࡁ͠ɺೖۚ͢Δόον • ࢢגࣜΛൃ͢Δόον • ࢢ৴Λൃ͢Δόον • ηκϯϙέοτ୯ମ • ηκϯϙέοτͰϢʔβʹੵཱ݁ՌΛ௨͢Δόον
όονॲཧͷઃܭͰҙ͍ࣝͯ͠Δ͜ͱ • ႈੑ • τϥϯβΫγϣϯ੍ޚ
ႈੑͱʁ • ͋Δૢ࡞Λෳճߦͬͯɺinput͕ಉ͡Ͱ͋Ε݁Ռಉ͡ʹͳΔɺͱ͍͏֓೦ • ex) ҎԼႈͰແ͍ • όονΛෳճୟ͘ͱɺ݁Ռ͕ͦͷʹ૿͍͑ͯ͘ • όονΛෳճୟ͘ͱɺ݁Ռ͕ͦͷʹߋ৽͞Ε͍ͯ͘
• όονΛႈʹ࡞Δ͖ཧ༝ • ͲΜͳόονʹඞࣦͣഊ͢ΔՄೳੑ͋Δ • ωοτϫʔΫΤϥʔɺoomɺϋʔυΣΞͷނোɾɾɾ • ΛऔΓআ͍ͨޙɺ࠶όονΛΒͤΔࣄ͕ग़དྷΔ
ႈੑͷ࣮ํ๏ • 1. શͯͷॲཧΛΓ͢ • ͓ͦΒ͘ݫີͳҙຯͰͷႈੑ • ߹ʹΑͬͯطʹग़དྷ͍ͯΔσʔλΛ࠷ॳʹআ͢Δ͜ͱ͕ඞཁͱͳΔ • ࠶࣮ߦ࣌ʹ͔͔࣌ؒΔ͕ɺ݅ذগͳͯ͘ࡁΉ
• 2. ະॲཧͷͷͷΈ࣮ߦ͢Δ • ͦΕͧΕͷॲཧʹରͯ͠ॲཧࡁεςʔλεΛ͚ͭΔɻ࠶࣮ߦ࣌ʹεςʔλε ͕͍͍ͭͯͳ͍ͷͷΈॲཧ͢Δ • ࠶࣮ߦ࣌ʹΓͷ݅Λ࣮ߦ͢Δ͚ͩͳͷͰɺ͔͔࣌ؒΒͳ͍ • εςʔλεͰϋϯυϦϯά͢Δɺ݅ذ૿͑ͯ͠·͏
ηκϯϙέοτͰͷྫ • 1. શͯͷॲཧΛΓ͢ྫ • ηκϯϙέοτ͔ΒBaaSʹରͯ͠ੵཱϦΫΤετΛૹΔόον • ηκϯϙέοτͰBaaS͔Βੵཱ݁ՌΛऔΓࠐΉόον • 2.
ະॲཧͷͷͷΈ࣮ߦ͢Δྫ • ΫϨδοτΧʔυϙΠϯτΛࢧ͏όον • ੵཱ݁ՌΛɺϝʔϧͰϢʔβʹ௨͢Δόον • ֎෦ʹ࡞༻Λ࣋ͬͯ͠·͏ͷ2Ͱ࣮ͤ͟ΔΛಘͳ͍ • 2ͷ߹ʹؾΛ͚ͭΔ͖͜ͱ —> τϥϯβΫγϣϯ੍ޚ
τϥϯβΫγϣϯ੍ޚͱʁ • τϥϯβΫγϣϯ = ͋ΔҙຯΛ࣋ͬͨҰ࿈ͷॲཧͷմ • τϥϯβΫγϣϯ੍ޚ = τϥϯβΫγϣϯͰσʔλͷ߹ੑ͕อͨΕΔ͜ͱ •
͜Ε͕݁ߏ͍͠
ex) ࢿ৴ୗͷܾࡁόον • ಛʹαʔϏεΛ·্͙ͨͰɺ༷ʑͳΤϥʔ͕ى͖͏Δ • ωοτϫʔΫΤϥʔ૬खํͷϋʔυΣΞͷނোΛߟ͑ΔͱҎԼఆͰ͖Δ • Ӭٱෆ໓ϙΠϯτͷೖۚ࣌ʹΤϥʔ • ΫϨΧར༻࣌ʹΤϥʔ
• ΫϨΧͷೖۚ࣌ʹΤϥʔ • Statusߋ৽࣌ʹΤϥʔ
͍͔ʹରԠ͍ͯ͠Δ͔ • ো͕ى͖Δ͜ͱΛલఏʹઃܭ͢Δ • ॲཧ୯Ґ͝ͱʹɺࡉ͔͘σʔλϕʔεΛߋ৽͢Δ͜ͱͰɺΤϥʔൃੜ࣌ͷӨڹΛہॴԽ • ֎෦ଓͷΓͱΓશͯϩάʹు͖ग़͢ɻͦͷଞॲཧͷϙΠϯτʹͳΔͱ͜Ζϩά Λు͘ɻ → ো͕ى͖ͯ͠·ͬͨ߹ɺԿ͕ى͍͔ͬͯͨ͑͜ΔΑ͏ʹ͢Δ
• ࣮ࡍো͕ى͖ͨ߹ʹͲ͏ͳΔ͔ • ΦϯίʔϧͷΤϯδχΞ͕͍Δ • γεςϜΤϥʔ͕ى͖ͨ߹ɺҰ୴ͦͷ࣌ͰόονΛࢭΊͯΦϯίʔϧͷΤϯδχ Ξʹ࿈བྷ͕͍͘
·ͱΊ • ূ݊ϓϥοτϑΥʔϜʮBaaSʢBrokerage as a ServiceʣʯΛ͑ɺ ଟେͳॳظίετΛ͔͚ͳͯۚ͘༥ࣄۀΛ࢝ΊΒΕΔɻ • BaaSϚΠΫϩαʔϏεԽ͠ɺηΩϡϦςΟɺՄ༻ੑɺύϑΥʔϚϯεɺ ίετʹର͠ɺͦΕͧΕͷ୯ҐͰٻΊΒΕΔͷʹద༻͍ͯ͠Δ
• ֤αʔϏεECSʹΑͬͯίϯςφӡ༻͠ɺdisposableʹ͢Δ͜ͱͰ ࠷৽ੑΛอͯΔΑ͏ʹ͍ͯ͠Δ • όονॲཧΫϥυαʔϏεൃՐͷΠϕϯτͰ࣮͢Δ͜ͱͰҰཡੑΛ อ͍ͬͯΔ • όονॲཧͷઃܭͰႈੑͱτϥϯβΫγϣϯ੍ޚ͕؊ʹͳΔ
We Are Hiring! • ࢲͨͪͱҰॹʹɺ࣍ੈͷۚ༥γεςϜΛϞμϯͳٕज़Ͱ։ൃͯ͠Έ·ͤΜ͔ʁ • ϚωʔδυαʔϏεSaaSΛੵۃతʹ׆༻͢Δ͜ͱͰɺॊೈͰՄ༻ੑͷߴ͍ γεςϜΛ࣮ݱ͍ͯ͠·͢ɻʢৄ͘͠ςοΫϒϩάʹͯʂ https://medium.com/finatext ʣ
• αʔϏε৫ٸதͰɺٕज़తʹνϟϨϯδͰ͖Δ͜ͱ͕ͨ͘͞Μ ͋Γ·͢ʂ • ৄ͘͠ https://finatext.com/ja/career
None