Hasura GraphQL Engine について考えていること

Hasura GraphQL Engine は、RDB を GraphQL API に変換してくれるステキプロダクトなのですが、かなり独自色の強いプロダクトです。

2020年9月時点での、僕の個人的見解を述べます。

Hasura は BFF の後ろにあるべき

個人的な見解としては、たとえば Next.jsやApollo Server を BFF(backends for frontends)として、ファサードパターンを構築し、Hasura GraphQL Engine はその背後にあるべきだと考えています。

いかんせん、Node.js で使える ORM にオススメできる定番もありませんし、既存の概念に沿った ORM を使うメリットはあまりない中、GraphQL API としてアクセスできる Hasura GraphQL Engine を BFF の背後に置く構成はありだと思っています。

Hasura GraphQL Engine を単体で使いこなそうとする場合、たとえば真面目に認証をしようとするとかなり面倒になります。もちろんアプリケーション全体で GraphQL アクセスに認証は必要でしょうから、いずれにせよ支払わなければならないコストでもありますが、BFF を別途用意しておけば、その BFF に対してのみ一度支払えばすむものです。

また、Hasura GraphQL Engine には、アクションやデータの自由度を上げる仕組みもありますが、そういった Hasura 固有の技術は、潰しが効きづらいため、あくまで筆者の個人的見解ですが、オススメはしがたいと思っています。数年後にはまごうことなく技術的負債となっていると想像できます。

そこで、BFF の背後に置いた単体の RDB GraphQL API として使い、それ以上の高度なことは BFF 経由で別のサーバーなり、BFF 上のコードとして実現するのがベターであろうという判断をしています。

Hasura GraphQL Engine を触っている、他の人たちの意見や見解も聞いてみたいところです。

この記事が気に入ったらサポートをしてみませんか?