モダンなアーキテクチャでゼロから作る証券基盤

 モダンなアーキテクチャでゼロから作る証券基盤

Finatextグループは、レガシーシステムが多く残る金融業界において、金融サービスに共通して必要となる機能をクラウド化し、サービス設計から開発、グロース施策までを一気通貫で提供することで多くの企業の金融DXへの取り組みを支援しています。このセッションでは、当社が証券プラットフォーム「BaaS(Brokerage as a Service)」を使ってどのように証券サービスを開発しているのか、その裏側を具体的な事例と共にご紹介します。

5a2478d5008e1c64bca72c650178341e?s=128

atsushi-ishibashi

July 21, 2020
Tweet

Transcript

  1. ϞμϯͳΞʔΩςΫνϟͰ θϩ͔Β࡞Δূ݊ج൫ גࣜձࣾFinatext ੴڮ३ࢤɾେ໦୎࠸ #devsumi Session C-7

  2. ࣗݾ঺հ ʔ ੴڮ३ࢤ • FinatextͰαʔόαΠυͱΠϯϑϥ • ূ݊ϓϥοτϑΥʔϜͷ։ൃʹܞΘΔ • ηκϯϙέοτͷ։ൃʹ΋ܞΘΔ •

    झຯ͸α΢φ • twitterɿ@bashi0501
  3. ࣗݾ঺հ ʔ େ໦୎࠸ • ΋ͱ΋ͱۜߦͰӦۀ΍ͬͯ·ͨ͠ • ݱࡏ͸FinatextͰαʔόαΠυΤϯδχΞ • BaaS΍ηκϯϙέοτͷ։ൃӡ༻ʹܞΘΔ •

    ࠷ۙͷझຯɿےτϨ • twitterɿ@okidoki78
  4. Finatextάϧʔϓʹ͍ͭͯ

  5. ࣄۀ಺༰ “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'#=
  6. ۚ༥͕΋ͬͱ฻Β͠ʹدΓఴ͏ੈͷதʹ͢Δ VISION MISSION ۚ༥Λ”αʔϏε”ͱͯ͠࠶ൃ໌͢Δ

  7. Finatextάϧʔϓ͕໨ࢦۚ͢༥αʔϏε૾ ' 34$  ' ) #!."  $ $

    -% 1(  , 34 ' &  +/ $ 02*       
  8. ূ݊ϓϥοτϑΥʔϜʢBrokerage as a Serviceʣ ূ݊αʔϏεͷڞ௨ػೳΛΫϥ΢υԽ͠ɺଞγεςϜͱͷ઀ଓ෦ΛAPIԽ

  9. ैདྷܕख਺ྉθϩͷίϛϡχςΟܕגऔҾΞϓϦ STREAMʢετϦʔϜʣͷ঺հ •ैདྷܕͷגࣜҕୗख਺ྉ͕͍ͭͰ΋Կ౓Ͱ΋ ແྉ •࠷୹̑෼ͰεϐʔσΟʔʹޱ࠲։ઃਃ͠ࠐΈ͕ Մೳ •ΦϯϥΠϯʗΦϑϥΠϯͷίϛϡχςΟΛ ௨ͯ͠ϕςϥϯ΋ॳ৺ऀ΋ג༑ʹ

  10. ηκϯϙέοτͷ঺հ ηκϯΧʔυ/UCΧʔυձһΛର৅ͱͨ͠౤ࢿӡ༻αʔϏε •খ࢝͘͞Ί͍ͨॳ৺ऀ޲͚ͷαʔϏε •ΫϨδοτΧʔυܾࡁͰגࣜͷੵΈཱ͕ͯՄೳ •Ӭٱෆ໓ϙΠϯτͰ౤ࢿ৴ୗ΍גࣜͷੵΈཱͯɺ ౤ࢿ৴ୗͷ౎౓ߪೖ͕Մೳ ύʔτφʔɿגࣜձࣾΫϨσΟηκϯ༷

  11. ܦӦ্ͷظ଴ • ࣄۀͷଟ֯Խ • ίΞࣄۀͱͷγφδʔ • Ϋϩεηϧ • ΫϩευϝΠϯͰͷσʔλ෼ੳ •

    UXͷ޲্ • ӦརاۀͰ͋ΔҎ্ɺϢʔβʔͱ͓ۚͷ΍ΓऔΓ͸ଘࡏ
  12. ۚ༥ࣄۀ্ཱͪ͛ͷ՝୊ • ໔ڐ੍ɾొ࿥੍ͷ΋ͷ͕΄ͱΜͲ • ձࣾ૊৫ • ਓһମ੍ • ෺ཧΦϑΟεͷߏ଄ •

    γεςϜίετ͸਺ेԯن໛ ࣌ؒ΋͓ۚ΋ॳظίετ͕͔͔Δ
  13. BaaSͷղܾ͢Δ՝୊ • ۚ༥঎඼஥հۀͱ͍͏ϥΠηϯεͰϥΠτʹ • 2021೥ʹ͸ʮۚ༥αʔϏε஥հۀʯ΋ • ओͳূ݊ۀ຿ʢޱ࠲։ઃ΍ܾࡁͳͲʣ΋Ҿ͖ ड͚Δ͜ͱͰମ੍΍ΦϑΟεͷ໰୊΋ճආ • WebAPIͰޱ࠲։ઃ΍஫จൃ஫ͳͲΛड͚Δ͜

    ͱͰॳظͷγεςϜίετΛճආ
  14. BaaSߏ੒ਤ

  15. BaaSͷಛ௃ • ෳ਺ͷECSΫϥελʹΑΔϚΠΫϩαʔϏε • ػೳ͝ͱʹେ͖͘ҟͳΔηΩϡϦςΟɾՄ༻ੑɾύϑΥʔϚϯεཁ݅ • ࢢ৔ͷ։͍ͯΔ࣌ؒ͸ݶΒΕ͓ͯΓɺͦΕʹΑΔίετ࠷దԽ • ϝϯςφϯεೖΕΔ͜ͱͷϋʔυϧͷࠩʢྫɿޱ࠲։ઃ͸24h։͚͍͍͕ͯͨɺ஫ จΛ౔೔ਂ໷ʹด͡Δ͜ͱ͸༰қʣ

    • ͨͩτϥϯβΫγϣϯڥք͸೉͍͠… • ਺ଟ͘ͷ֎෦઀ଓ؀ڥɻൃ஫ܥɺՁ֨ܥɺόοΫΦϑΟεetc • ͦΕʹ൐͏ଟ͘ͷόονॲཧ • FIXʢTCP্ͷۚ༥༻ϓϩτίϧʣʹ͸ઐ༻ઢ઀ଓʢDirect ConnectʣΛར༻ɻ
  16. ηκϯϙέοτߏ੒ਤ ۙ೥كʹݟΔ γϯϓϧͳϞϊϦε

  17. ΫϨσΟηκϯ༷ͷ঺հ

  18. ηκϯϙέοτͷ஀ੜ

  19. • ౤ࢿ৴ୗ΍ɺגࣜͷੵཱ౤ࢿ͕ग़དྷΔ • גࣜ͸1ג୯ҐͰੵཱՄೳʢ௨ৗɺࢢ৔Ͱചങ͢Δ৔߹ ͸100ג୯Ґʣ • ੵཱͷݪࢿʹ͸ɺηκϯΧʔυ΍ɺӬٱෆ໓ϙΠϯτΛ ར༻͢Δ͜ͱ͕ग़དྷΔ • ΋ͪΖΜΧʔυͰੵཱ͢ΔͱӬٱෆ໓ϙΠϯτ΋ஷ·

    Δ ηκϯϙέοτͷಛ௃
  20. • ͪͳΈʹɾɾɾ • ΫϨδοτΧʔυΛ༻͍ͨגࣜੵཱ͸೔ຊॳ • ΫϨδοτΧʔυΛ༻͍ͨ౤ࢿ৴ୗͷੵཱ΋೔ຊʹ਺ ͑Δ΄Ͳ ηκϯϙέοτͷಛ௃

  21. • Ϣʔβͱͯ͠͸ੵཱʹΫϨδοτΧʔυΛ࢖͍͍ͨ • ͳ͓௨ৗ͸ΫϨδοτΧʔυͷख਺ྉ͕ߴͯ͘࢖͑ͳ͍ • גࣜͷചങख਺ྉɿยಓ1%ະຬ • ౤ࢿ৴ୗͷ৴ୗใुɿ0.5~1.5%ఔ౓ • ΫϨδοτΧʔυͷܾࡁख਺ྉɿ3%௒

    • ΫϨδοτΧʔυൃߦձࣾͷΫϨσΟηκϯ༷͔ͩΒͦ͜ग़དྷͨαʔϏε ηκϯϙέοτͷಛ௃
  22. • ੵཱ౤ࢿͷ࢓૊Έ • όονॲཧͷઃܭ ੵཱͷཪଆͷ࿩

  23. • ੵཱ౤ࢿͷ࢓૊Έ • όονॲཧͷઃܭ ੵཱͷཪଆͷ࿩

  24. ੵཱ౤ࢿͷ࢓૊Έ • ຖ݄8೔ʹੵཱΛ࣮ࢪ • 1. ηκϯϙέοτͷαʔό͔ΒɺBaaSʹରͯ͠ੵཱϦΫΤετΛ౤͛Δ • 2. BaaSͰ͸ҎԼΛߦ͏ •

    ސ٬ͷΫϨδοτΧʔυɾϙΠϯτͷܾࡁ • ܾࡁֹͨۚ͠Λɺސ٬ͷূ݊ޱ࠲΁ೖۚ • ސ٬ͷޱ࠲࢒ߴΛར༻͠ɺגࣜɾ౤ࢿ৴ୗͷࢢ৔΁ͷൃ஫ • 3. ηκϯϙέοτͷαʔόͰɺੵཱ݁ՌΛऔΓࠐΈ
  25. ੵཱ౤ࢿͷ࢓૊Έ • ຖ݄8೔ʹੵཱΛ࣮ࢪ • 1. ηκϯϙέοτͷαʔό͔ΒɺBaaSʹରͯ͠ੵཱϦΫΤετΛ౤͛Δ • 2. BaaSͰ͸ҎԼΛߦ͏ •

    ސ٬ͷΫϨδοτΧʔυɾϙΠϯτͷܾࡁ • ܾࡁֹͨۚ͠Λɺސ٬ͷূ݊ޱ࠲΁ೖۚ • ސ٬ͷޱ࠲࢒ߴΛར༻͠ɺגࣜɾ౤ࢿ৴ୗͷࢢ৔΁ͷൃ஫ • 3. ηκϯϙέοτͷαʔόͰɺੵཱ݁ՌΛऔΓࠐΈ
  26. ੵཱ౤ࢿͷ࢓૊Έ • ౤ࢿ৴ୗͷ৔߹ • ϙΠϯτͷܾࡁɾΫϨΧͷܾࡁ → ސ٬צఆ΁ೖۚ → ސ٬צఆͰࢢ৔΁ങ෇ൃ஫ •

    גࣜͷ৔߹ • ϙΠϯτͷܾࡁ → ސ٬צఆ΁ೖۚ → εϚʔτϓϥεͷࣗݾצఆͰࢢ৔΁ങ෇ൃ ஫ → ΫϨΧͷܾࡁ → ސ٬צఆ΁ೖۚ → εϚʔτϓϥεͷอ༗࢒ʢࡏݿʣΛސ ٬͕ങ෇͢Δ • גࣜͷ৔߹͸ɺސ٬͕ΫϨΧܾࡁʹࣦഊͨ͠৔߹͸ɺεϚʔτϓϥε͕ࡏݿΛ๊ ͑Δ͜ͱͱͳͬͯ͠·͏
  27. ੵཱ౤ࢿͷ࢓૊Έ • ຊདྷ͸גࣜ΋ɺ౤ࢿ৴ୗͱಉ͘͡ɺΫϨδοτΧʔυܾࡁΛ֬ೝͰ͖͔ͯΒɺࢢ৔΁ ൃ஫͍ͨ͠ • ౤ࢿ৴ୗʹؔͯ͠͸ֹۚ୯ҐͰങ෇Ͱ͖ΔͷͰՄೳ • →10,000ԁ෼ͷߪೖϦΫΤετʹରͯ͠ɺͪΐ͏Ͳ10,000ԁͰങ෇ͭ͢͜ͱ͕Մೳ • ͔͠͠גࣜʹؔͯ͠͸1ג୯ҐͰ͔͠ങ෇Ͱ͖ͳ͍

    • → 1ג3,000ԁͷ৔߹ɺ10,000ԁ෼ͷߪೖϦΫΤετʹରͯ͠9,000ԁ෼͔͠ങ͍෇ ͚Ͱ͖ͳ͍ • ֹۚ͸ɺࢢ৔ʹൃ஫͢Δ͜ͱͰॳΊͯ֬ఆ͢Δ • Αͬͯɺൃ஫ޙʹΫϨδοτΧʔυΛܾࡁ͢Δඞཁ͕͋Δ
  28. ੵཱ౤ࢿͷ࢓૊Έ • ങ෇ൃ஫ͷલʹɺΫϨδοτΧʔυʹ10,000ԁ෼ܾࡁɾೖۚ͠ɺ༨ͬͨ෼͸ͦ ͷ··ޱ࠲࢒ߴʹ࢒͢ͷ͸Ͳ͏͔ʁ • ͜Ε͸ΫϨδοτΧʔυͷʮγϣοϐϯά࿮ͷݱۚԽʯʹ֘౰ͯ͠͠·͏ͷͰ ग़དྷͳ͍ • ങ෇ൃ஫ͷલʹɺܾࡁձࣾʹ10,000ԁ෼ͷΧʔυͷ༩৴࿮ͷ֬อΛߦ͍ɺޙʹ 9,000ԁ෼ͷΧʔυܾࡁΛߦ͑͹Α͍ͷͰ͸ʁ

    • ࢓૊Έ্ɺ10,000ԁͷ༩৴࿮͸औΓফͤͳ͍ͨΊɺ19,000ԁ෼ͷ༩৴࿮͕ඞ ཁͱͳͬͯ͠·͏
  29. • ੵཱ౤ࢿͷ࢓૊Έ • όονॲཧͷઃܭ ੵཱͷཪଆͷ࿩

  30. όονͷछྨ • BaaS 㱻 ηκϯϙέοτ • ηκϯϙέοτ͔ΒBaaS΁ੵཱਃ੥Λ࿈ܞ͢Δόον • BaaS͔Βηκϯϙέοτ΁ੵཱ݁ՌΛ࿈ܞ͢Δόον •

    BaaS୯ମ • BaaSͷதͰ֤ϚΠΫϩαʔϏεʹੵཱਃ੥Λ࿈ܞ͢Δόον • ΫϨδοτΧʔυ΍Ӭٱෆ໓ϙΠϯτΛܾࡁ͠ɺೖۚ͢Δόον • ࢢ৔΁גࣜΛൃ஫͢Δόον • ࢢ৔΁౤৴Λൃ஫͢Δόον • ηκϯϙέοτ୯ମ • ηκϯϙέοτͰϢʔβʹੵཱ݁ՌΛ௨஌͢Δόον
  31. όονॲཧͷઃܭͰҙ͍ࣝͯ͠Δ͜ͱ • ႈ౳ੑ • τϥϯβΫγϣϯ੍ޚ

  32. ႈ౳ੑͱ͸ʁ • ͋Δૢ࡞Λෳ਺ճߦͬͯ΋ɺinput͕ಉ͡Ͱ͋Ε͹݁Ռ͸ಉ͡ʹͳΔɺͱ͍͏֓೦ • ex) ҎԼ͸ႈ౳Ͱ͸ແ͍ • όονΛෳ਺ճୟ͘ͱɺ݁Ռ͕ͦͷ౓ʹ૿͍͑ͯ͘ • όονΛෳ਺ճୟ͘ͱɺ݁Ռ͕ͦͷ౓ʹߋ৽͞Ε͍ͯ͘

    • όονΛႈ౳ʹ࡞Δ΂͖ཧ༝ • ͲΜͳόονʹ΋ඞࣦͣഊ͢ΔՄೳੑ͸͋Δ • ωοτϫʔΫΤϥʔɺoomɺϋʔυ΢ΣΞͷނোɾɾɾ • ໰୊ΛऔΓআ͍ͨޙɺ࠶౓όονΛ૸ΒͤΔࣄ͕ग़དྷΔ
  33. ႈ౳ੑͷ࣮૷ํ๏ • 1. શͯͷॲཧΛ΍Γ௚͢ • ͓ͦΒ͘ݫີͳҙຯͰͷႈ౳ੑ • ৔߹ʹΑͬͯ͸طʹग़དྷ͍ͯΔσʔλΛ࠷ॳʹ࡟আ͢Δ͜ͱ͕ඞཁͱͳΔ • ࠶࣮ߦ࣌ʹ࣌ؒ͸͔͔Δ͕ɺ৚݅෼ذ͸গͳͯ͘ࡁΉ

    • 2. ະॲཧͷ΋ͷͷΈ࣮ߦ͢Δ • ͦΕͧΕͷॲཧʹରͯ͠ॲཧࡁεςʔλεΛ͚ͭΔɻ࠶࣮ߦ࣌ʹ͸εςʔλε ͕͍͍ͭͯͳ͍΋ͷͷΈॲཧ͢Δ • ࠶࣮ߦ࣌ʹ࢒Γͷ݅਺Λ࣮ߦ͢Δ͚ͩͳͷͰɺ࣌ؒ͸͔͔Βͳ͍ • εςʔλεͰϋϯυϦϯά͢Δ෼ɺ৚݅෼ذ͸૿͑ͯ͠·͏
  34. ηκϯϙέοτͰͷྫ • 1. શͯͷॲཧΛ΍Γ௚͢ྫ • ηκϯϙέοτ͔ΒBaaSʹରͯ͠ੵཱϦΫΤετΛૹΔόον • ηκϯϙέοτͰBaaS͔Βੵཱ݁ՌΛऔΓࠐΉόον • 2.

    ະॲཧͷ΋ͷͷΈ࣮ߦ͢Δྫ • ΫϨδοτΧʔυ΍ϙΠϯτΛࢧ෷͏όον • ੵཱ݁ՌΛɺϝʔϧ౳ͰϢʔβʹ௨஌͢Δόον • ֎෦ʹ࡞༻Λ࣋ͬͯ͠·͏΋ͷ͸2Ͱ࣮૷ͤ͟ΔΛಘͳ͍ • 2ͷ৔߹ʹؾΛ͚ͭΔ΂͖͜ͱ —> τϥϯβΫγϣϯ੍ޚ
  35. τϥϯβΫγϣϯ੍ޚͱ͸ʁ • τϥϯβΫγϣϯ = ͋ΔҙຯΛ࣋ͬͨҰ࿈ͷॲཧͷմ • τϥϯβΫγϣϯ੍ޚ = τϥϯβΫγϣϯ಺Ͱσʔλͷ੔߹ੑ͕อͨΕΔ͜ͱ •

    ͜Ε͕݁ߏ೉͍͠
  36. ex) ౤ࢿ৴ୗͷܾࡁόον • ಛʹαʔϏεΛ·্͙ͨͰ͸ɺ༷ʑͳΤϥʔ͕ى͖͏Δ • ωοτϫʔΫΤϥʔ΍૬खํͷϋʔυ΢ΣΞͷނো౳Λߟ͑ΔͱҎԼ͸૝ఆͰ͖Δ • Ӭٱෆ໓ϙΠϯτ෼ͷೖۚ࣌ʹΤϥʔ • ΫϨΧར༻࣌ʹΤϥʔ

    • ΫϨΧ෼ͷೖۚ࣌ʹΤϥʔ • Statusߋ৽࣌ʹΤϥʔ
  37. ͍͔ʹରԠ͍ͯ͠Δ͔ • ো֐͕ى͖Δ͜ͱΛલఏʹઃܭ͢Δ • ॲཧ୯Ґ͝ͱʹɺࡉ͔͘σʔλϕʔεΛߋ৽͢Δ͜ͱͰɺΤϥʔൃੜ࣌ͷӨڹΛہॴԽ • ֎෦઀ଓͷ΍ΓͱΓ͸શͯϩάʹు͖ग़͢ɻͦͷଞॲཧͷϙΠϯτʹͳΔͱ͜Ζ΋ϩά Λు͘ɻ → ো֐͕ى͖ͯ͠·ͬͨ৔߹ɺԿ͕ى͍͔ͬͯͨ͜௥͑ΔΑ͏ʹ͢Δ

    • ࣮ࡍো֐͕ى͖ͨ৔߹ʹ͸Ͳ͏ͳΔ͔ • ΦϯίʔϧͷΤϯδχΞ͕͍Δ • γεςϜΤϥʔ͕ى͖ͨ৔߹͸ɺҰ୴ͦͷ࣌఺ͰόονΛࢭΊͯΦϯίʔϧͷΤϯδχ Ξʹ࿈བྷ͕͍͘
  38. ·ͱΊ • ূ݊ϓϥοτϑΥʔϜʮBaaSʢBrokerage as a ServiceʣʯΛ࢖͑͹ɺ ଟେͳॳظίετΛ͔͚ͳͯ͘΋ۚ༥ࣄۀΛ࢝ΊΒΕΔɻ • BaaS͸ϚΠΫϩαʔϏεԽ͠ɺηΩϡϦςΟɺՄ༻ੑɺύϑΥʔϚϯεɺ ίετʹର͠ɺͦΕͧΕͷ୯ҐͰٻΊΒΕΔ΋ͷʹద༻͍ͯ͠Δ

    • ֤αʔϏε͸ECSʹΑͬͯίϯςφӡ༻͠ɺdisposableʹ͢Δ͜ͱͰ ࠷৽ੑΛอͯΔΑ͏ʹ͍ͯ͠Δ • όονॲཧ΋Ϋϥ΢υαʔϏεൃՐͷΠϕϯτͰ࣮૷͢Δ͜ͱͰҰཡੑΛ อ͍ͬͯΔ • όονॲཧͷઃܭͰ͸ႈ౳ੑͱτϥϯβΫγϣϯ੍ޚ͕؊ʹͳΔ
  39. We Are Hiring! • ࢲͨͪͱҰॹʹɺ࣍ੈ୅ͷۚ༥γεςϜΛϞμϯͳٕज़Ͱ։ൃͯ͠Έ·ͤΜ͔ʁ • ϚωʔδυαʔϏε΍SaaSΛੵۃతʹ׆༻͢Δ͜ͱͰɺॊೈͰՄ༻ੑͷߴ͍ γεςϜΛ࣮ݱ͍ͯ͠·͢ɻʢৄ͘͠͸ςοΫϒϩάʹͯʂ https://medium.com/finatext ʣ

    • αʔϏε΋૊৫΋ٸ੒௕தͰɺٕज़తʹ΋νϟϨϯδͰ͖Δ͜ͱ͕ͨ͘͞Μ ͋Γ·͢ʂ • ৄ͘͠͸ https://finatext.com/ja/career
  40. None