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
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
o f o r m w h i t e - l a b e l e d co m m u n i t i e s p e r I P IPごとにホワイトラベルなコミュニティを作っていくことで、 様々なドメインの機能を開発したり、IP横断で利用できるような汎用性の高さが重要になってきた IPに特化した ホワイトラベル化 旧Gaudiy コミュニティA コミュニティB コミュニティC 旧Gaudiy コミュニティA コミュニティB コミュニティC
r o p e r u n d e r st a n d i n g o f v a r i o u s d o m a i n s w i t h D D D ・多種多様なドメインが存在する1つのプロダクト ・ヒアリングを通して、正しくドメインを理解し、プロダクトの将来の方向性を見極めて設計によってレバレッジをかける 決済・EC Gamification SNS NFT チケット・配信 エンタメ キャンペーン
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
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 availability to join chat fetch NFT by User sync On-Chain data ︙ Gaudiy NFT Contract 3rd party NFT Contract NFT service Chat Service Spanner ユーティリティとNFTの関係性は サービス間の依存関係も同じ
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は開発ロールはエンジニア以外存在しなく、基本的にフラットな組織形態 ↓ ・この体制によってエンジニア一人一人が組織横断的な課題の解決を自律的に行うことができ、視座が高く保てる ・新しいアーキテクチャの導入・改善や開発横断の課題は解決策を各々がリーダーシップを持って提案をし、 チームでブラッシュアップしてフォロワーシップを持って複数人で実行していく