Hasura と共に歩んだ一年と半年を振り返りつつ、どういったプロダクト・組織において Hasura を採用するべきか、採用すると何が起きるかについて説明します。
Hasuradinii aka karszawaUIT meetup vol. 142021 11 24
View Slide
ΞδΣϯμ21. Hasura2.3. Hasura4. Hasura N5.q Hasura
ࣗݾհ3まほ aka @karszawaま diniiほほま JavaScript TypeScriptほ
Hasura
Hasura ͱ5ま Hasuraま PostgreSQL GraphQLま GraphQL
Αࠞ͘ಉ͞ΕΔʢʁʣ֓೦ͱͷཧ6ま vs GraphQLほ GraphQL isほ GraphQLち Hasuraま vs Hasura Cloudほ Hasura Hasuraほ dinii Cloud Run OSS Hasuraち OSS Hasuraま vs Prismaほ Prisma is GraphQL ORMほ
7
μΠχʔͱ8ま 2020 1ま 3 6ほ Vertical SaaSϨδ ΩΦεΫ ΩονϯσΟεϓϨΠμογϡϘʔυ ϋϯσΟϞόΠϧΦʔμʔϓϦϯλ࿈ܞࣗಈમػ࿈ܞϓϦϯλ࿈ܞLINE Mini App
ϙΠϯτ9ままほ Node.jsまほ IF GraphQLほ Hasura
Hasura10
͍ͭ Hasura Λ࠾༻͢Δ͖͔111. ろろろ2. ろろ3. ろ PostgreSQL
͍ͭ Hasura Λ࠾༻͢Δ͖͔12まま diniiま Firebase & Firestoreほ NoSQLほ
͍ͭ Hasura Λ࠾༻͢Δ͖͔13ま = IFほちちちHasuraま
͍ͭ Hasura Λ࠾༻͢Δ͖͔14PostgreSQLま PostgreSQLま MySQLほ PostgreSQL Citusま PostgreSQLま PostgreSQL
Hasura15
ຊ൪ Hasura ӡ༻ͷצॴ161.2. Remote Schema3.
ຊ൪ Hasura ӡ༻ͷצॴ17ま ORM Hasuraほ Hasuraまま Hasura Web UI Hasuraほ Hasuraま TypeORM Hasura CI
όοΫΤϯυͷ TypeORM ͷܕఆٛͱ Hasura ͷϚΠάϨʔγϣϯϑΝΠϧʹ߹ੑ͕͋Δ͜ͱΛ CI Ͱ֬ೝ͢Δํ๏181. Hasura Web UI2. TypeORMCI1. Hasura2. TypeORM3. = Hasura TypeORM ❌ = Hasura TypeORM ✅
ຊ൪ Hasura ӡ༻ͷצॴ19Remote schemaまほ Remote schemaほ Remote schemaまほ Remote schemaほ Hasura
ຊ൪ Hasura ӡ༻ͷצॴ20まほ Hasuraほ JWTち ex: x-haura-shop-id=xyz JWT order.shopId=xyz orderま order.user.userId = xyzまほ Remote schema
ຊ൪ Hasura ӡ༻ͷצॴ21ま Introspection Hasura schema.gqlま = GraphQL Codegenほ
ͦͷଞͷצॴ22Hasura Webま GraphiQLま ま REST Remote schema HasuraActionsま Remote schemaまEvent Triggerま
23
·ͱΊ241. Hasura2. dinii 3 SWE3. 3 1ま https://about.dinii.jp/recruitま 3ま 1 1 3