あ、しんのきです

趣味とか技術系とか

Hasura Japan User Group 2 に参加しました

しんのきです。 久しぶりに個人ブログです。

自社サービスに Hasura を採用している こともあって最近 Hasura のことばかり考えているのですが、国内の情報交換の場が少ないので貴重な交流の場を求めて @bettter_than_i_w さん主催の Hasura Japan User Group 2 #20AW に参加しました。

hasura-japan.connpass.com

LT

Hasura を用いたフルスタックアプリケーションのアーキテクトについて

uncle-javascript.com

Hasura を実践的に利用するために必要な認証、パーミッション、カスタムロジック(Remote Schema、Actions)について一通りザーッと解説してくださいました。

結局 Remote Schema を書いていったほうが早い、 Actions はあまり使い所が分からないとおっしゃっていたのですが、自分は Hasura v1.2.0 以降では Actions にがっつり寄せていっていたので、質問させていただきました。

個人的な考察として Remote Schema はリモートの GraphQL サーバ に接続しにいって初めてスキーマが確定するので外部サービスが主導権を握っているのに対し Actions はマイグレーション上に Input と Output が定義できるので Hasura が主導権を握っているという違いがありそうです。

外部サービスが REST か GraphQL かの違いですのでやろうと思えばどちらでも同じことができるのですが、改めて Remote Schema についても考えてみたいなと思いました。

Hasuraを使ったフルスタックアプリケーション開発のための基盤構築

www.notion.so

yarn workspace を使った monorepo 構成プロジェクトでの開発と開発環境、ステージング環境、本番環境の設定などの概観について発表してくださいました。

GraphQL Code Generator を使う場合 monorepo は非常に相性がいいです。特に Hasura は GraphQL 的には Schema First なアプローチというよりは Code First のアプローチに近い思想なので、事前に Schema だけ定義しておいてプロジェクト間で共有しておくということがやりづらく monorepo にしておいたほうがメリットが多いです。

面白かったのは yarn workspace のトップレベルの package.json

"script": {
  "web": "yarn workspace web",
  ...
}

とか書いておくと yarn web ... でできるよというのがなるほどといった感じでした。

雑談

Hasura Cloud について

自分はちょっと触ってみた感じ、 Event Trigger とか Actions を設定するための環境変数が設定できなくてまだ実用はできないなと思っていました。

f:id:konoki_nannoki:20200725165804p:plain

しかしここの環境変数は Key に任意の文字列を入力して自分で定義できるようです。なんと...!

$99/mo というのは他にコンテナ環境をセットアップすることを考えるとそこまで高くなく、 Hasura Pro の機能が使えますので beta が取れたらぜひ使いたいです。

Nhost について

初耳だったのですが Hasura + PostgreSQL + 認証 + ストレージ をまるっとホスティングしてくれる Nhost というサービスも存在するようです。

nhost.io

Hasura は認証などの機能は Pluggable になるように設計されていますが、そこをサービス内で一緒に提供してしまうことで Firebase や AWS Amplify と同じようなことを実現しようというものですね。 正直まだ荒削りですし現段階で触る必要はなさそうです。 (これもビジネスロジック書きたくなったらどうするんだろう?)

ただ一点いいなと思うところがあり、 Hasura の認証機能を設定する際にどの IDaaS を使っていても JWT Claim の設定がどうしても必要になってきますが、もしここがスキップできるのであれば初学者のハードルは更に下がりそうです。 どちらにしろ後々仕組みを理解する必要はありますが、まずはとりあえず動くというところまでたどり着けるのは良いことですね。

感想

Hasura を使っている人たちとわいわいできてできてよかったです。

日本語で Hasura について情報交換できるのは、今回参加したコミュニティの他に自分が観測している限り

があるのですがいまいち交流できていないので、もっと盛り上がっていくといいですね。