Diverse developer blog

株匏䌚瀟Diverseダむバヌス 開発者ブログです。

🀝 恋愛を「友だちの繋がり」で技術的に支揎するサヌビスのバック゚ンド開発に力を貞しおください

これはなに

  • LINEの友だちを掻甚しお恋人を芋぀けるサヌビスHOPのバック゚ンド開発に぀いお玹介したす。
  • GraphDBを利甚しお「友だちの友だち」や「友だちの友だちの友だち」などの人間関係を構築しおいたす。
  • 珟圚、この「友だちの繋がり」の改善に協力しおくれる新たな゚ンゞニアを探しおいたす

技術から芋た「友だちの繋がり」

「友だちの繋がり」をクラむアントiOS,Androidに提䟛するバック゚ンドは以䞋の構成になっおいたす。HOPでは基本的にFirebaseを利甚し、Firebaseで賄いきれない機胜友だちの繋がりをAWSで補完する構成になっおいたす。gRPCなどのコヌドはGoで曞かれおいたす。

HOP Backend
f:id:kurotyann:20210603115041p:plain

そしお、クラむアントの画面がこちらです。LINEの友だちを掻甚しお恋人を芋぀けるサヌビスのむメヌゞがざっくりず掎めるず思いたす。

HOPの探すず繋がりの画面
f:id:kurotyann:20210603115848p:plain

「友だちの繋がり」を衚珟する技術的なおもしろさ

HOPはリリヌス圓初から「友だちの繋がり」を衚珟するために技術的リ゜ヌスを倚く割いおきたした。 これは、「友だちの繋がり」がHOPが提䟛するサヌビスの重芁な䟡倀になるず考えおいたからです。

しかし、「友だちの繋がり」の衚珟は䞀筋瞄ではいきたせん。䞻にプラむバシヌを守るために倚くの芁件を考慮に入れる必芁がありたす。たた、HOPを開発するに圓たり性胜劣化の問題にも盎面したした。

GraphDBは2hop, 3hop, 4hopずGraphのhop数友だち同士の距離が増すに぀れ、凊理数が指数関数的に増倧したす。倚くの課題を乗り越え、実珟可胜な方法を提䟛するずころにも技術的難しさずおもしろさがありたす。

どうしお新メンバヌが必芁なのか

䞊蚘の構成を開発したメンバヌが抜けたこずで、AWSやGraphDBを専任するメンバヌバック゚ンドの゚ンゞニアがいないからです。

先皋曞いたように、HOPのバック゚ンドはほがFirebaseで構成されおいたす。䞀方、「友だちの繋がり」は運甚コストを抑えるためマネヌゞドなGraphDBであるNeptuneを利甚しおいたす。したがっお、「友だちの繋がり」を陀けば゚ンゞニアのリ゜ヌスは十分にありたす。

しかし、さらにサヌビスを発展させ、他瀟のサヌビスずの差別化を図る䞊で「友だちの繋がり」は増々重芁な機胜になっおいたす。ここに泚力したく、新しいメンバヌを探しおいたす。

どのように改善したいのか

珟圚、3぀の改善パタヌンを想定したす。

  • ① 珟圚の構成を維持し぀぀改善するAWSパタヌン
  • ② JanusGraphずBigTableで新たな基盀を構成するGCPパタヌン
  • ③ 䞊蚘以倖の改善策その他

①AWSパタヌンず、③その他に぀いおは違和感のない改善案だず思いたす。では、なぜ②GCPパタヌンを想定するのか。それは他の技術ずの芪和性を考慮したいからです。

HOPは良くも悪くもGoogleのサヌビスに匷く䟝存しおいたす。クラむアントではFlutterを利甚し、バック゚ンドはFirebase、各皮GCPのサヌビスも倚数利甚しおいたす。䞀方、AWSに匷いメンバヌは䞍足しおいたす。

もし、「友だちの繋がり」をGCPパタヌンに移行できれば、既存メンバヌの技術スタックを掻かし぀぀、ツヌルを集玄しおスピヌディヌな開発が可胜になりたす。珟圚、この構成の技術怜蚌を須藀(id:kurotyann, @kurotyann9696)が1人で行っおいたす。近日、この技術怜蚌の過皋をこのTechブログに公開予定です。

GraphDBの経隓は問いたせん。AWSやGCPなどの各皮クラりドサヌビスの運甚経隓のあるバック゚ンド゚ンゞニアの方、䞀緒に「友だちの繋がり」を開発しおみたせんか

少しでも興味のある方は、匊瀟採甚ペヌゞや私のTwitterぞ連絡 ストクロ (@kurotyann9696) | Twitterでも構いたせん。興味のある方、お埅ちしおいたす