Slide 1

Slide 1 text

© Findy Inc. 2026.01.22 Findy Tech Talk #01 Findy Conferenceを⽀える 技術基盤の裏側 1 ファインディ株式会社 マルチスタックエンジニア ⻄村 憲悟 @sontixyou #Findy_TechTalk

Slide 2

Slide 2 text

© Findy Inc. ⾃⼰紹介 2 ⻄村 憲悟 [にしむら けんご] マルチスタックエンジニア @sontixyou / そんちょ #Findy_TechTalk

Slide 3

Slide 3 text

© Findy Inc. ● Findy Conferenceとは? ● ネットワーク不安定でも受付を⽌めない⽅法は? ● マルチクライアントGraphQL API設計 ● ユーザーの権限管理をどうやる? 今⽇話すこと 3 #Findy_TechTalk

Slide 4

Slide 4 text

© Findy Inc. 今⽇話さないこと 4 ● Findy Conferenceの技術的な伸びしろ ● アイルランドのビールが熱い🍺 #Findy_TechTalk

Slide 5

Slide 5 text

© Findy Inc. Findy Conferenceとは 5 #Findy_TechTalk

Slide 6

Slide 6 text

© Findy Inc. 6 Findy Conference 技術スタック 参加者向け画⾯ 主催者向け画⾯ スポンサー向け画⾯ #Findy_TechTalk

Slide 7

Slide 7 text

© Findy Inc. カンファレンス特有の課題 7 ● ネットワーク不安定でのオフライン受付機能 ● ユーザーの種別に対応するGraphQL API ● ロールによる権限管理 #Findy_TechTalk

Slide 8

Slide 8 text

© Findy Inc. 受付機能とは 8 #Findy_TechTalk

Slide 9

Slide 9 text

© Findy Inc. ネットワーク不調による影響 9 ● カンファレンス運営陣 ○ ⼊場数を正確にカウントできない ● 受付オペレーション ○ 受付が混雑し、参加者を待たせてしまう #Findy_TechTalk

Slide 10

Slide 10 text

© Findy Inc. 10 navigator.onLine ブラウザーのオンライ ン状態を返す ⼀時的にLocalStorage に受付済みデータを貯 める

Slide 11

Slide 11 text

© Findy Inc. カンファレンス特有の課題 11 ● ネットワーク不安定でのオフライン受付機能 ● ユーザーの種別に対応するGraphQL API設計 ● ロールによる権限管理 #Findy_TechTalk

Slide 12

Slide 12 text

© Findy Inc. 課題2 - ユーザーの複数種別への対応 12 #Findy_TechTalk

Slide 13

Slide 13 text

© Findy Inc. ● ユーザーの種別によってログインCookieが異なる ● 主催者画⾯には権限管理が必要 課題2 - ユーザーの複数種別への考慮 13 #Findy_TechTalk

Slide 14

Slide 14 text

© Findy Inc. 課題2 - ユーザーの複数種別への対応 14 観点 単⼀スキーマ 複数スキーマ 保守性 ◯ △ 運⽤⾯ △ ◯ 権限管理 ✘ ◯ #Findy_TechTalk

Slide 15

Slide 15 text

© Findy Inc. 課題2 - ユーザーの複数種別への対応 15 観点 単⼀スキーマ 複数スキーマ 保守性 ◯ △ 運⽤⾯ △ ◯ 権限管理 ✘ ◯ #Findy_TechTalk

Slide 16

Slide 16 text

© Findy Inc. 解決策 - マルチクライアントGraphQL API 16 #Findy_TechTalk

Slide 17

Slide 17 text

© Findy Inc. カンファレンス特有の3つの課題 17 ● ネットワーク不安定でのオフライン受付機能 ● ユーザーの種別に対応するGraphQL API設計 ● ロールによる権限管理 #Findy_TechTalk

Slide 18

Slide 18 text

© Findy Inc. ● 主催者 ● 運営コアメンバー ● 当⽇の会場運営スタッフ ● 外部協⼒会社 主催者側の画⾯を使う様々なユーザー 18 #Findy_TechTalk

Slide 19

Slide 19 text

© Findy Inc. ● 主催者 & 運営コアメンバー ○ 売上情報や参加者情報を知りたい ● 当⽇の会場運営スタッフ & 外部協⼒会社 ○ 登壇者情報だけを知りたい 主催者側の画⾯を使う様々なユーザー 19 #Findy_TechTalk

Slide 20

Slide 20 text

© Findy Inc. 20

Slide 21

Slide 21 text

© Findy Inc. GraphQLディレクティブ 21 https://the-guild.dev/graphql/tools/docs/schema-directives コレ!! #Findy_TechTalk

Slide 22

Slide 22 text

© Findy Inc. GraphQLディレクティブ 22 ⽤途 例 認可 @auth バリデーション @length データ変換 @uppercase #Findy_TechTalk

Slide 23

Slide 23 text

© Findy Inc. 解決策 GraphQLディレクティブを使った権限管理 23

Slide 24

Slide 24 text

© Findy Inc. 解決策 GraphQLディレクティブを使った権限管理 24

Slide 25

Slide 25 text

© Findy Inc. まとめ 25 ● ネットワークなしの受付機能: ネットワーク不安定 でも受付を⽌めない ● マルチクライアントGraphQL API設計 ● GraphQLディレクティブを活⽤した権限管理