Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GraphQLのBFFをJVMで書く理由を模索してみた_LT用

iwaseshi
August 06, 2022
45

 GraphQLのBFFをJVMで書く理由を模索してみた_LT用

iwaseshi

August 06, 2022
Tweet

Transcript

  1. 2 API開発において技術選定されることが年々減ってきている...気がする。 - バックエンド技術のモダン化に取り残されている。 - 新規のプロダクト作りだとGo、Python、Node.jsがバックエンドとして選択されることが多い。 (*1) - コンテナ技術との相性が悪い。 -

    GraalVMでネイティブビルドこそできるが、 JVMのAPI開発でベターなSpringがクソ重い。  → どうにか覇権を取り返せないか?! (*1)https://to-a.org/news/2022/05/12/7631/ より上位企業の選定技術より 模索のモチベーション なんか最近バックエンド界隈でJVM系言語の肩身狭くね?
  2. 4 Springベースのものは勿論、Strutsやseaser…etで動いているシステムの保守は続いている。 - 既存システムを技術スタックをそのままにモダナイズする動きは国内でもめずらしくない。 - SpringMV → Front - Bak構成へのアーキテクチャ分割とか

     → すでに描画用のデータフェッチや加工に関するロジックがJavaで書かれている! 新規開発以外でなら...? 稼働中のシステムでいうとJVM系技術の使用したシステムの母数は圧倒的
  3. 6 - 迅速なオートスケール - ログ統合/監視 - 複雑なエラーハンドリング  → この辺のエコシステムさえ整っていれば全然いけそう。 Q :

    BFFに求められる技術要件を満たせるか? BFFが採用されるマイクロサービスアーキテクチャにおける技術観点を参考に評価する。
  4. 7 - 迅速なオートスケール - quarkus-smallrye-graphqlを使用すれば、Sptingライクな開発者体験を位事しつつ、 Nativeビルドによるイメージの軽量化等の恩恵が受けられる。 - ログ統合/監視 - 複雑なエラーハンドリング

    - 横断処理の記述になるそうていのため、もともと得意な Aspet系の処理が活きてくる。   → なんだよ、いけそうじゃねえか。 A : BFFに求められる技術要件を満たせられる! BFFが採用されるマイクロサービスアーキテクチャにおける技術観点を参考に評価する。