Living on the Edge: Designing Relational Data in GraphQL
summary
Builds a GraphQL schema for authors readers and books using Relay cursor pagination and explicit connection and Edge types, moves denormalized totals onto authorBookConnection instead of user, and relocates start/finish timestamps onto authorBookEdge and readerBookEdge so relationship data isn’t stored on Book. Adds a reverse bookReaderConnection to list readers of a book. Results: queries return correct totals and per-relationship timestamps and prevent the earlier bug that exposed wrong permissions when traversing alternate query paths.
AI-written summary · about
chapters (19)
- 0:00Introduction to speakers
- 0:44Schema design challenges
- 2:08Building a schema incrementally
- 3:31Starting with basic types
- 4:35Adding author book list
- 5:39Implementing pagination
- 8:51Adding total book count
- 11:18Adding reader book list
- 13:01Adding writing timestamps
- 14:04Adding reading timestamps
- 16:08Viewing others' reading data
- 17:54Revisiting schema guidelines
- 19:37Moving fields to edge types
- 21:27Adding reverse connection
- 22:32Final schema overview
- 23:36Real-world application
- 24:18Key learnings from exercise
- 26:04Three schema design guidelines
- 27:07Q&A and closing
related talks
23mHow to edge cache GraphQL APIs
25mDemystifying GraphQL Clients
18mCrafting compelling real-time web experiences with GraphQL
27mWhat if ... How to Achieve GraphQL Domination
01h 07mGraphQL: Smooth Schemas and Rough Edges
31mWelcome to the Wonderful World of GraphQL
17mThe Power of GraphQL
29mWrite Queries, Not Code
