n l i n k f o r a v a r i e t y o f d o m a i n s コミュニティを起点に、自律分散的なファンによる経済圏を実現し、ファンが自分のIPを常に感じて暮らせる社会を作ろうとしている SNS t 投稿・コメント・いいねなどの基本機j t チャットやDMなどのメッセージ機能 SNS t 投稿・コメント・いいねなどの基本機j t チャットやDMなどのメッセージ機能 SNS t 投稿・コメント・いいねなどの基本機j t チャットやDMなどのメッセージ機能 ID連携・決済 t 外部サービスとのID連携を低コストで実 t サービスを横断したファン体験の構築 ID連携・決済 t 外部サービスとのID連携を低コストで実 t サービスを横断したファン体験の構築 ID連携・決済 t 外部サービスとのID連携を低コストで実 t サービスを横断したファン体験の構築 現在準備中 t メタバー® t De-F« t グローバルローカライズ etc... 現在準備中 t メタバー® t De-F« t グローバルローカライズ etc... 現在準備中 t メタバー® t De-F« t グローバルローカライズ etc... NFT・ブロックチェーン t NFTの販売/配布/パブリックチェーンへの書き出Ì t 動画/音声/投票券など多様なユーティリティ付与 NFT・ブロックチェーン t NFTの販売/配布/パブリックチェーンへの書き出Ì t 動画/音声/投票券など多様なユーティリティ付与 NFT・ブロックチェーン t NFTの販売/配布/パブリックチェーンへの書き出Ì t 動画/音声/投票券など多様なユーティリティ付与 ファン投票/DAO t ファン 活動で 得たNFTを 使った投票 が可j t ファンを 意思決定に巻き 込むD AO構築を実 現 ファン投票/DAO t ファン 活動で 得たNFTを 使った投票 が可j t ファンを 意思決定に巻き 込むD AO構築を実 現 ファン投票/DAO t ファン 活動で 得たNFTを 使った投票 が可j t ファンを 意思決定に巻き 込むD AO構築を実 現 トークン グラフ マー ケティン グ t SN Sやイ ベント 、商品購入な ど 様 々なファン 活動 にNFTを配布 。 I P独自のトークングラフ 形成と マー ケティング 活動 が可能 トークン グラフ マー ケティン グ t SN Sやイ ベント 、商品購入な ど 様 々なファン 活動 にNFTを配布 。 I P独自のトークングラフ 形成と マー ケティング 活動 が可能 トークン グラフ マー ケティン グ t SN Sやイ ベント 、商品購入な ど 様 々なファン 活動 にNFTを配布 。 I P独自のトークングラフ 形成と マー ケティング 活動 が可能
n l i n k a r c h i t e c t u r e i n t h e s e e d p h a s e 圧倒的な初動の開発速度! 開発が進むにつれてDBスキーマの変更され、アプリケーションが壊れやすくなってきた Firebase Hosting Cloud Firestore Cloud Function Frontend Next.js TypeScript SSR read/write data extends Firestore trigger by changing Firestore
n l i n k A r c h i t e c t u r e Frontend Next.js TypeScript Apollo Client BFF TypeScript Apollo Server Backend Kotlin Go Send Tx GraphQL REST・gRPC Sync On-Chain data Cloud Spanner Cloud Run Vercel Ethereum Polygon etc... NFT service BE services
e v e l o p m e n t p r o d u c t i v i t y a n d i n t r o d u ce s c a l a b l e d e s i g n s ・Gaudiyのプロダクトの性質上、さまざまなドメインの機能を開発していく必要がある ・Stream Aligned TeamがFE → BEまで一気通貫で開発できる体制を重視する ・開発生産性を向上させたり、多くのIPの課題を解決できるような拡張性の高い設計の導入が重要 Stream Aligned Team 1 ユーザー体験設計 プロダクトデザイン設計 開発要望相談・ドメイン知識の開発反映・受け入れ条件決定 PdM UXデザイナー UIデザイナー エンジニア 開発生産性の向上 拡張性 高い 設計 FE・BE・BFF (本質的な価値) 増幅 サポート
r i v e n d e v e l o p m e n t t o r e d u ce co u p l i n g r i s k - REST(OpenAPI)、gRPC(移行中)とGraphQLを利用している エンジニア Update protobuf by pair programming Publish by GitHub Action gaudiy-api-typescript gaudiy-api-typescript gaudiy-api-kotlin gaudiy-api-go
i c a t i n g s e r v i ce -t o - s e r v i ce f o r C l o u d R u n ・BFF、BEのサービスはすべてCloud Runでホスティングし、どのサービスとのリクエストを許可するかをサービス間認証を使って制御している ・Cloud RunのサービスアカウントのIDトークンをヘッダーに含めて、サービス間通信を行う Apply Authorization: Bearer ID_TOKEN_SERVICE_B Authorization: Bearer ID_TOKEN_SERVICE_A nft-service service-A service-B
r i v e n U I f o r a v a r i e t y o f I P s 様々なIPのコミュニティやUIを表現する必要があるため、SDUIを利用し、複雑な表示の切り替えを可能 GraphQL FE sections[0] nav sections[1] ・ ・ ・ union = | ︙ Section TopicSection ChatSection UI is constructed with Section from GraphQL Response Logic to construct UI
a t co n fi n e t h e co m p l e x i t y o f t h e b l o c kc h a i n ・GaudiyとしてはUXを考えたとき、「On-Chain Write・Off-Chain Read」を基本としたブロックチェーン設計をしている ・ブロックチェーン自体はそこまで検索性に優れたシステムではないため、on chainのデータをoff chain(gaudiy内のDB)に移し、サービス化している NFT service Frontend User Wallet Alchemy(Blockchain Node Provider) Send Tx On-Chain Write Sync On-Chain data Store On-Chain data Off-Chain Read Ethereum Polygon ・・・ Spanner
n S y n c w i t h N F T S e r v i ce ・Blockchain(特にEVM系)の特性上、ブロックチェーンで発生したEvent情報をリアルタイムで検知して、それをoff chainのState化していく ・イメージとしてはCQRSに近い NFT service Subscribe NFT Transfer Event by Websocket when Tx is confirmed by EVM chain event format: ( , , ) Transfer address address uint256 from tokenId to Send Tx ( Transfer NFT, Mint NFT) Store On-Chain data Data Model ・Community User ID ・Owner Address ・TokenID Spanner NFT Contract(0x...) Frontend User Wallet Ethereum Polygon
w i t h N F T i n G a u d i y : U t i l i t i e s X of NFT → XはNFTのメタデータ(e.g. NFTの名前、説明文) Y is given by NFT → Yは (e.g. NFTを持っている人しか入れないDiscord) NFTのユーティリティ GaudiyのサービスでNFTのユーティリティを拡張していくことによって、 NFTの実用価値をエコシステムで作っていく
e r v i ce u s i n g N F T s e r v i ce i n G a u d i y 特定のNFTを持つユーザーのみが参加可能な限定チャット check to own NFT by User fetch NFT by User sync On-Chain data ︙ Gaudiy NFT Contract 3rd party NFT Contract NFT service Chat Service Spanner
b y G a u d i y Fa n l i n k ・Gaudiyでは、権限を持つユーザーがコミュニティからNFTをオンチェーンに書き出す申請をすることで、public chain上でNFTとして利用することができる ・一般的なOpenSeaなどのNFTマーケットプレイスが利用しているLazyMintの方式に近いものを採用している ① verify then create signagure to mint NFT ③ verify signature then mint NFT in NFT contract ② send Tx to mint NFT with signature Frontend User Wallet Ethereum Gaudiy NFT Contract NFT service server-side wallet Cloud KMS BFF
u s c u l t u r e t o i m p r o v e d e v i s s u e s i n t e a m s ・Gaudiyは開発ロールはエンジニア以外存在しなく、基本的にフラットな組織形態 ・新しいアーキテクチャの導入・改善や開発横断の課題は解決策を各々がリーダーシップを持って提案をし、 チームでブラッシュアップしてフォロワーシップを持って複数人で実行していく