diff --git a/scripts/sync-sched/schedule-2025.json b/scripts/sync-sched/schedule-2025.json
index 9293168937..7e1906e07a 100644
--- a/scripts/sync-sched/schedule-2025.json
+++ b/scripts/sync-sched/schedule-2025.json
@@ -42,7 +42,7 @@
"event_end": "2025-09-08 19:15",
"event_type": "Breaks / Networking / Special Events",
"description": "SECURITY NOTICE\nPlease keep all personal belongings in your possession during the conference. GraphQL, The Linux Foundation nor the Pakhuis de Zwijger are responsible for lost or stolen items. If something is misplaced, check in with an Event Staff member at the registration desk.",
- "goers": "0",
+ "goers": "2",
"seats": "0",
"invite_only": "N",
"venue": "K Floor - Underground Floor",
@@ -77,7 +77,7 @@
"event_start": "2025-09-08 08:00",
"event_end": "2025-09-08 18:30",
"event_type": "Registration + Badge Pick-up",
- "goers": "7",
+ "goers": "9",
"seats": "0",
"invite_only": "N",
"venue": "BG Foyer - Ground Floor",
@@ -113,7 +113,7 @@
"event_start": "2025-09-08 09:00",
"event_end": "2025-09-08 09:05",
"event_type": "Keynote Sessions",
- "goers": "10",
+ "goers": "12",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -159,7 +159,7 @@
"event_start": "2025-09-08 09:05",
"event_end": "2025-09-08 09:15",
"event_type": "Keynote Sessions",
- "goers": "10",
+ "goers": "11",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -206,7 +206,7 @@
"event_end": "2025-09-08 09:35",
"event_type": "Keynote Sessions",
"description": "Even ten years in, GraphQL continues to evolve—not just in code, but in connection. This year the Foundation has doubled down on transparency, support, and shared leadership: board minutes are now public, Subject Matter Experts have helped shape the conference agenda, and we'll be launching a new program live on stage! There are also updates on our existing initiatives including community grants and GraphQL Locals.\n\nThis talk is a thank you to the people behind the progress and a celebration of our growing constellation of contributors. It's also an invitation to step forward and get involved—one of the best ways to do that is by joining our new Community Working Group, giving passionate community members a voice in shaping the Foundation's directions and initiatives for the next ten years of GraphQL.",
- "goers": "10",
+ "goers": "11",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -266,7 +266,7 @@
"event_end": "2025-09-08 09:45",
"event_type": "Keynote Sessions",
"description": "Meet the new developer journey: Ask AI → Generate code → Iterate → Ship. This fundamental shift in how developers work demands we rethink every touchpoint of our GraphQL APIs. This talk focuses on the developer experience layer—how to design schemas that are self-explanatory, structure documentation so AI gives accurate answers about your API, and build tools that feel like pair programming with a senior engineer.",
- "goers": "8",
+ "goers": "9",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -319,7 +319,7 @@
"event_end": "2025-09-08 10:00",
"event_type": "Keynote Sessions",
"description": "A peek behind the curtain revealing how GraphQL is used at Meta. We will explore how everything from culture, development process, client and server implementations, schema patterns and conventions, advanced tooling and more work together to allow GraphQL to enable great user and developer experiences at Meta.",
- "goers": "10",
+ "goers": "11",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -372,7 +372,7 @@
"event_end": "2025-09-08 10:15",
"event_type": "Keynote Sessions",
"description": "As developers build with AI agents, we face a challenge: how do we provide these agents with reliable, flexible access to our distributed data? GraphQL's graph-based approach makes it the ideal language for AI. Join Matt DeBergalis, CEO and Co-founder of Apollo GraphQL, to explore how \"thinking in graphs\" fundamentally transforms API orchestration from procedural code to declarative queries – creating the composable data layer that AI-driven applications require.",
- "goers": "9",
+ "goers": "10",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -417,7 +417,7 @@
"event_start": "2025-09-08 10:15",
"event_end": "2025-09-08 10:20",
"event_type": "Keynote Sessions",
- "goers": "9",
+ "goers": "10",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -463,7 +463,7 @@
"event_start": "2025-09-08 10:20",
"event_end": "2025-09-08 10:45",
"event_type": "Breaks / Networking / Special Events",
- "goers": "4",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "Foyer Grote Zaal - 2nd Floor",
@@ -499,7 +499,7 @@
"event_start": "2025-09-08 10:20",
"event_end": "2025-09-08 18:45",
"event_type": "Solutions Showcase",
- "goers": "2",
+ "goers": "3",
"seats": "0",
"invite_only": "N",
"venue": "Workspace - 2nd Floor",
@@ -536,7 +536,7 @@
"event_end": "2025-09-08 11:15",
"event_type": "Developer Experience",
"description": "Even dedicated GraphQL developers face the reality of enterprise environments: multiple REST endpoints requiring complex orchestration and endless fetch requests. In this developer-focused session, we'll explore practical schema design patterns for effectively mapping common REST API shapes into your GraphQL schema.\n\nWe'll dive into real-world examples showing how to transform pagination, filtering, nested resources, and other REST patterns into intuitive GraphQL abstractions. You'll learn proven strategies for maintaining excellent developer experience while rapidly onboarding existing services to your graph.\n\nWhether working with OpenAPI specs or internal API documentation, we'll demonstrate tooling and techniques to accelerate this process dramatically – bringing your REST services into your graph in days, not months. Stop writing endless API orchestration code and start delivering value through GraphQL.",
- "goers": "2",
+ "goers": "3",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -628,7 +628,7 @@
"event_end": "2025-09-08 11:15",
"event_type": "GraphQL Working Group",
"description": "This discussion embarks on a thought experiment to redesign GraphQL from the ground up. We will explore the choices that might be made if we could start over, free from the constraints of existing implementations.\n\nThe session focuses on key areas where the current GraphQL specification has faced challenges and sparked debate within the community. Discussions will cover:
- Union Types: Exploring alternative approaches to improve flexibility and usability.
- Schema-Defined Nullability: Rethinking how nullability is handled to enhance clarity and consistency.
- Error Handling: Proposing new strategies for more robust and intuitive error management.\n
\nThrough collaborative discussions and interactive exercises, participants will contribute insights and ideas, shaping a theoretical vision of what GraphQL 2.0 could look like. This thought exercise is designed to challenge assumptions and inspire innovative solutions.\n\nThe session will conclude with a focus on the practicalities of evolving GraphQL towards a 2.0 version in the real world, exploring how to address these design challenges while considering migration paths and maintaining backward compatibility.",
- "goers": "4",
+ "goers": "6",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
@@ -816,7 +816,7 @@
"event_end": "2025-09-08 11:55",
"event_type": "GraphQL in Production",
"description": "After maintaining GraphQL Java for 10 years we learned what aspects of GraphQL are critical for optimal performance. \n \nWe we look at what users of GraphQL should consider and which aspects of the spec are critical for optimal performance.\n \nWe will look also closer into the aspects of operating GraphQL at scale including and what it means when the schema and requests continue to grow.",
- "goers": "6",
+ "goers": "9",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
@@ -862,7 +862,7 @@
"event_end": "2025-09-08 11:55",
"event_type": "Developer Experience",
"description": "Despite having \"Graph\" in its name, GraphQL schemas are rarely visualized as actual graphs.\n\nThis lightning talk explores the untapped potential of graph visualization for GraphQL schemas based on lessons learned while working on graphql-voyager.\n\nWe'll explore the theory behind effective schema visualization, share key insights from my 9 years of experience in this field, and discuss current challenges in representing complex schemas.\n\nI'll also present experimental approaches that go beyond existing libraries, pushing the boundaries of how we understand and interact with GraphQL schemas.\n\nJoin me for a visual journey that reveals what makes the \"Graph\" in GraphQL truly powerful, potentially reshaping how we design and understand our APIs.",
- "goers": "5",
+ "goers": "7",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -996,6 +996,12 @@
"start_time_ts": 1757325900,
"end_date": "2025-09-08",
"end_time": "12:35:00",
+ "files": [
+ {
+ "path": "https://static.sched.com/hosted_files/graphqlconf2025/95/@async_ Defer even more - GraphQL Conf 2025.pdf",
+ "name": "@async_ Defer even more - GraphQL Conf 2025.pdf"
+ }
+ ],
"event_subtype": "Scaling"
},
{
@@ -1007,7 +1013,7 @@
"event_end": "2025-09-08 12:35",
"event_type": "GraphQL in Production",
"description": "The most natural way to understand fragments is as a reusable part of a query. We at Meta know that this isn't true and can lead to a world of pain when it comes to making sure the data you fetch matches the code that uses that data (no over-fetching).\n\nThe worst part is both the GraphQL spec and the educational materials mention re-use for fragments as part of their value:\n\"Fragments allow for the reuse of common repeated selections of fields, reducing duplicated text in the document.\"\n\nThis talk will explain what we've learned is the best way to use fragments (as subcomponents you convert to in order to pass to the logic that is tied to that fragment).\n\nWe will use Relay's per-file graphql co-location as a demonstration of this philosophy in action",
- "goers": "7",
+ "goers": "10",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -1052,7 +1058,7 @@
"event_start": "2025-09-08 12:35",
"event_end": "2025-09-08 13:45",
"event_type": "Breaks / Networking / Special Events",
- "goers": "5",
+ "goers": "7",
"seats": "0",
"invite_only": "N",
"venue": "Foyer Grote Zaal - 2nd Floor",
@@ -1149,7 +1155,7 @@
"event_end": "2025-09-08 14:15",
"event_type": "GraphQL in Production",
"description": "The Buyer Abuse Prevention team is responsible for preventing returns abuse on Amazon.com. We do this by leveraging multiple streams of data to help make accurate decisions that minimize friction to our good customers. Enrichment of entities, for example, orders, is often distributed across multiple APIs, which makes collecting and organizing large sets of data inefficient and inflexible.\n\nTo simplify development, we built a GraphQL API to consolidate the collection and storage of data that allowed us to break the dependency on API results and design our storage around entities in a way that was optimal for our business. Chaining API calls now only takes place within a single API without need for code replication. Swapping out the underlying API for specific fields no longer requires code refactoring as the shape of the entity remained the same. The schema is well-connected which allows for different entry points but ultimately arrives at the same data without needing to reinvent the wheel.\n\nWe can now focus on developing a schema and set of entities that match our business needs, without risk of major refactoring when a dependent API changes.",
- "goers": "1",
+ "goers": "2",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
@@ -1195,7 +1201,7 @@
"event_end": "2025-09-08 14:15",
"event_type": "GraphQL in Production",
"description": "GraphQL Subscriptions over WebSockets is an extremely popular way to notify the caller that something happened on the back end. While a high level of Quality of Service is possible in other protocols such as STOMP or MQTT, there is no actual guarantee of delivery with GraphQL Subscriptions: any acknowledgment mechanism should be built in userland.\n \nWebSockets can be interrupted at any time with both graceful and ungraceful disconnections, and the lack of acknowledgment in the subscription protocol affects reliability, making GraphQL Subscription over WebSocket connections susceptible to disconnections, as any protocol failures will result in messages being lost. In other words, Subscriptions are stateful. In this talk, we will investigate a mitigation technique to make them resumable so that the connection can be destroyed and recreated without any message loss.",
- "goers": "3",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -1241,7 +1247,7 @@
"event_end": "2025-09-08 14:55",
"event_type": "Developer Experience",
"description": "GraphQL federation has changed how we think about data and it's time to adopt that thinking to how we build UIs and component systems. In this talk, Gabe will share his deep experience from building design systems at Apple, Netflix and now StubHub to help you design yours.\n \nWhat are the advantages GraphQL brings to a traditional React component system? How can fragments optimize the composability of your components? How to reduce duplication while reducing the time you need to ship new features?\n \nWe will provide guidance on how to build and leverage a federated component system along-side your design system. \n \nFinally, we will cover how we've leveraged AI to speedup the creation of our design system and federated components at StuHub. Join to learn more!",
- "goers": "7",
+ "goers": "8",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -1287,7 +1293,7 @@
"event_end": "2025-09-08 14:55",
"event_type": "GraphQL in Production",
"description": "To ease life for the roughly 1,000 developers who contribute regularly to our GraphQL interface, Airbnb has a highly opinionated developer API that we believe eases life for both developers and the operators who maintain the service. In the past, this API was implemented on top of a traditional, specification-based GraphQL engine, which supported agility as we evolved our opinionated approach to resolvers. As that approach matured, we saw opportunities to build a more efficient engine to support them.\n\nThis talk describes our new GraphQL engine. Key elements in our design include:\n\n- Refactoring query execution into distinct resolution and completion phases.\n\n- A query planner that optimizes and orchestrates the execution of those phases.\n\n- A new data structure that is the intermediary between the two phases, a data structure that allows for principled communication between the many resolvers involved in executing a query",
- "goers": "1",
+ "goers": "2",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -1439,7 +1445,7 @@
"event_end": "2025-09-08 15:35",
"event_type": "GraphQL in Production",
"description": "The Member Experience Core Systems team at Netflix is entrusted with orchestrating every facet of the member experience. From the intricacies of the profiles screen to the dynamic homepage and the seamless search for your favorite shows, our robust API layer is the backbone that supports it all.\n\nOperating at an astronomical scale, our two principal Subgraph Services collectively manage over a million GraphQL queries per second. This immense scale, coupled with the diverse queries our systems accommodate, ensures that even the most minute edge cases are brought to light.\n\nIn this presentation, we will delve into two significant production bugs that emerged at scale. The first involved a federation-based solution at the query planning layer, which culminated in a 20% reduction in requests per second and yielded substantial cost savings amounting to hundreds of thousands of dollars. The second, a subgraph service specific enhancement, remarkably doubled the efficiency of our entire fleet.\n\nBy sharing our journey of identifying and resolving these issues, we aspire to provide insights that will directly enhance your day-to-day endeavors using GraphQL.",
- "goers": "5",
+ "goers": "8",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -1542,7 +1548,7 @@
"event_start": "2025-09-08 15:35",
"event_end": "2025-09-08 15:55",
"event_type": "Breaks / Networking / Special Events",
- "goers": "4",
+ "goers": "6",
"seats": "0",
"invite_only": "N",
"venue": "Foyer Grote Zaal - 2nd Floor",
@@ -1579,7 +1585,7 @@
"event_end": "2025-09-08 16:25",
"event_type": "Developer Experience",
"description": "Over the past few years, GraphQL has fallen out of favor for developers looking to build full-stack typescript applications. With projects like TRPC and NextJS, many people have started to pigeonhole GraphQL into an enterprise-shaped box. But this doesn't have to be the case! In this talk, Alec will give a practical introduction with live coding to Houdini, a GraphQL-first application framework and demonstrate how to rapidly move from idea to creation with a state-of-the-art developer experience that brings GraphQL back as a contender for the best choice for smaller applications.",
- "goers": "4",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
@@ -1631,7 +1637,7 @@
"event_end": "2025-09-08 16:05",
"event_type": "GraphQL in Production",
"description": "Subscriptions are not like queries and mutations. They require specific thinking and care in any implementation strategy.\nFederation adds a layer of infrastructure that can complicate subscriptions in two ways:\n\n- scaling, because the federation gateway may have to resolve many subscription streams at the same time,\n- translation, because each subgraph has the protocols it supports, and they may not overlap with the protocol used by the clients.\n\nThis lightning talk dives into the challenges of translation we encountered in concrete scenarios:\n\n- How websocket init payloads map, or not, to http headers\n- How to translate SSE requests to websocket requests\n- Alternatives like multipart streams\n- Websocket subprotocols",
- "goers": "1",
+ "goers": "2",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -1683,7 +1689,7 @@
"event_end": "2025-09-08 16:25",
"event_type": "GraphQL in Production",
"description": "Turning a private GraphQL API into a public one comes with unexpected challenges. We’ll share how we approached this transition—starting from an existing internal schema that wasn’t shaped for external consumers—and the steps we took to expose only what was ready. Using Apollo Federation Contracts, we filtered out unstable or sensitive parts of the graph. Along the way, we defined best practices for the public schema, like cursor-based pagination, using oneOf for inputs and results.\nWe’ll also touch on how we serve the schema through Hive Gateway with a supergraph setup, and the security measures we added, like depth limiting and complexity analysis. To keep things evolving safely, we rely on GraphQL Hive to track usage and guide deprecations.\n \nIf you’re thinking about exposing a GraphQL API—or just want ideas for keeping one clean and manageable—this talk will share what worked for us, what didn’t, and what we learned.",
- "goers": "6",
+ "goers": "8",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -1729,7 +1735,7 @@
"event_end": "2025-09-08 16:25",
"event_type": "GraphQL in Production",
"description": "Adopting GraphQL federation creates a convenient place in your infrastructure to make authorization decisions:\n\n- It comes early in the request lifecycle, before any subgraph.\n- It has access to the whole client request, as well as the entirety of the federated graph.\n- Authorization can still be the responsibility of the subgraph teams, or a cross cutting concern.\n\nThis talk is about leveraging the special position of the federation gateway for authorization.\n\nWe'll cover the directives federation offers for authorization out of the box: `@authenticated`, `@requiresScopes`, `@policy`. To cover a more advanced use case, we'll explore how to implement fine-grained authorization taking advantage of data from your federated graph by leveraging extensions in the open source Grafbase Gateway.",
- "goers": "2",
+ "goers": "3",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -1816,6 +1822,12 @@
"start_time_ts": 1757342100,
"end_date": "2025-09-08",
"end_time": "17:05:00",
+ "files": [
+ {
+ "path": "https://static.sched.com/hosted_files/graphqlconf2025/75/Compose your mobile apps.pdf",
+ "name": "Compose your mobile apps.pdf"
+ }
+ ],
"event_subtype": "Frontend"
},
{
@@ -1827,7 +1839,7 @@
"event_end": "2025-09-08 17:05",
"event_type": "GraphQL in Production",
"description": "A talk covering the journey of The Guild building our new Rust router and query planner.\n\nWe are going to share our years-long journey through learnings, insights and real-life examples on why and how we’ve built our open-source Federation Router and query planner.\n\nIn this talk, we’ll cover:- The background and journey of the ecosystem’s different gateways and routers
- Benchmarks and Audit-based development
- Why we build our query planner as a library
- How we got it to be so performant
- Next steps and the community can get involved
",
- "goers": "4",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -1886,7 +1898,7 @@
"event_end": "2025-09-08 17:05",
"event_type": "GraphQL in Production",
"description": "alt title: Surviving Change Without Breaking Everything\n \nWhen we launched our new GraphQL API at Netflix, it felt perfect—destined to power hundreds of millions of devices. Yet, change is inevitable. Even if your schema seems flawless today (which it isn't), requirements will shift, new features will emerge, and regrets will follow.\n \nGraphQL promises evolvability, allowing us to move forward without multiple API versions. But how does this hold up in practice? We mark fields as @deprecated, but what happens next? How can we embrace experimentation without entombing technical debt in the API? Does federation complicate things? Evolving your schema without breaking clients is easy, right? Right??\n \nDrawing from experience with the Netflix API, this talk explores techniques for evolving your schema safely and painlessly. We'll cover the schema lifecycle—from experimentation to design, deprecation, and deletion.\n \nAttendees will leave with:\n- Schema design principles that facilitate change\n- Practical techniques for evolving GraphQL schemas\n- Strategies for managing a deprecation workflow\n \nJoin us as we learn to face the inevitability of change with confidence and serenity.",
- "goers": "8",
+ "goers": "9",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -1932,7 +1944,7 @@
"event_end": "2025-09-08 17:45",
"event_type": "GraphQL in Production",
"description": "Over the past six years, Viaduct has grown from Airbnb’s unified data access layer into a central platform for hosting business logic — now supporting over 1 million lines of code, 500+ monthly contributors, and 100+ teams.\n\nThat scale has brought a familiar risk: the slow creep toward monolith. Viaduct was never meant to be a microservices system, but we’ve had to make deliberate choices to preserve team autonomy, performance, and codebase sanity.\n\nThis talk shares the strategies we’re using — and actively evolving — to make that possible, including:\n\n* Tenant modules that define slices of the GraphQL schema alongside their implementation logic;\n* Relying on GraphQL fragments instead of service calls for inter-module communication;\n* Building ownership and attribution into the platform so teams can trace metrics and errors back to themselves.\n\nWe haven’t fully solved these challenges — but we’ve learned a lot about what works, what breaks, and what to watch for.",
- "goers": "8",
+ "goers": "9",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
@@ -1978,7 +1990,7 @@
"event_end": "2025-09-08 17:45",
"event_type": "GraphQL in Production",
"description": "In this talk, we'll explore the design and implementation of a distributed GraphQL router built with Kotlin, leveraging graphql-java and Spring Boot. \nBy using Kotlin’s powerful scripting and DSLs, we can create a highly configurable and scalable solution that simplifies the complexity of managing distributed GraphQL APIs.",
- "goers": "0",
+ "goers": "1",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -2081,7 +2093,7 @@
"event_start": "2025-09-08 17:45",
"event_end": "2025-09-08 18:45",
"event_type": "Breaks / Networking / Special Events",
- "goers": "4",
+ "goers": "6",
"seats": "0",
"invite_only": "N",
"venue": "Foyer Grote Zaal - 2nd Floor",
@@ -2118,7 +2130,7 @@
"event_end": "2025-09-09 18:00",
"event_type": "Breaks / Networking / Special Events",
"description": "SECURITY NOTICE\nPlease keep all personal belongings in your possession during the conference. GraphQL, The Linux Foundation nor the Pakhuis de Zwijger are responsible for lost or stolen items. If something is misplaced, check in with an Event Staff member at the registration desk.",
- "goers": "0",
+ "goers": "2",
"seats": "0",
"invite_only": "N",
"venue": "K Floor - Underground Floor",
@@ -2156,9 +2168,9 @@
"goers": "2",
"seats": "0",
"invite_only": "N",
- "venue": "BG Foyer - Ground Floor",
+ "venue": "Foyer Grote Zaal - 2nd Floor",
"id": "c0205884be221948a39bc4af9939c675",
- "venue_id": "2152797",
+ "venue_id": "2152803",
"event_start_year": "2025",
"event_start_month": "September",
"event_start_month_short": "Sep",
@@ -2225,7 +2237,7 @@
"event_start": "2025-09-09 09:00",
"event_end": "2025-09-09 17:30",
"event_type": "Solutions Showcase",
- "goers": "0",
+ "goers": "1",
"seats": "0",
"invite_only": "N",
"venue": "Workspace - 2nd Floor",
@@ -2262,7 +2274,7 @@
"event_end": "2025-09-09 10:30",
"event_type": "Workshops",
"description": "Join us for an intensive hands-on workshop where you'll build a complete e-commerce application stack, from GraphQL API to AI integration. We'll start by creating a robust GraphQL API using Apollo Router, covering schema design and federation best practices.\n\nThen we'll extend your GraphQL API with a Model Context Protocol (MCP) server, enabling structured AI data access and tool-based interactions. This allows AI assistants to query your products, manage inventory, and process orders directly through your API.This workshop emphasizes exceptional developer experience with hot-reloading capabilities across your entire stack for rapid iteration. You'll learn real-world patterns for connecting GraphQL APIs with MCP servers, handling data flow between layers, and maintaining type safety from your database to your AI tools.\n\nPrerequisites: Familiarity with GraphQL basics. Bring a laptop with Node.js installed.\n\nBy the end of this workshop, you'll be able to:- Configure Apollo Router to orchestrate multiple GraphQL services into a unified graph
- Integrate microservices that extend and complement each other's capabilities
- Build and deploy a custom GraphQL API as part of your federated graph
- Expose any GraphQL operation as MCP tools with zero additional code, making your entire API instantly AI-accessible
- Understand practical use cases for AI-integrated applications in modern development workflows
",
- "goers": "0",
+ "goers": "1",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -2308,7 +2320,7 @@
"event_end": "2025-09-09 10:30",
"event_type": "Workshops",
"description": "This workshop proposes the development of a demo social media application, \"Y,\" using GraphQL, Relay, and React Server Components (RSC). The goal is to showcase the powerful synergy between Relay’s declarative data fetching and RSC’s server-side rendering, creating an ideal stack for scalable, performant web applications. \n \nThe demo will highlight: \n \n- Co-location of GraphQL fragments with React components for a modular, maintainable codebase. \n- Relay’s type-safe queries to efficiently fetch data for posts, comments, and user profiles. \n- React Server Components to optimize server-side rendering and enable React streaming for progressive UI rendering. \n- A fully functional social media app with interactive, real-time features. \n \nThrough this hands-on demo, we’ll illustrate how Relay’s fragment-based architecture and RSC’s streaming capabilities allow developers to build responsive, data-driven applications. This workshop will demonstrate the potential of these technologies for modern frontend development providing a compelling case for adopting this stack in production projects.",
- "goers": "4",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
@@ -2353,7 +2365,7 @@
"event_start": "2025-09-09 10:30",
"event_end": "2025-09-09 10:45",
"event_type": "Breaks / Networking / Special Events",
- "goers": "2",
+ "goers": "4",
"seats": "0",
"invite_only": "N",
"venue": "Foyer Grote Zaal - 2nd Floor",
@@ -2390,7 +2402,7 @@
"event_end": "2025-09-09 11:25",
"event_type": "Developer Experience",
"description": "GraphQL error handling sucks. There, I said it.\n\nEver hunted through the errors list to figure out if a null was legit or caused by an error? If you're like me, you gave up and now treat nulls as \"maybe errored, maybe absent, maybe both.\"\n\nAnd nullability. Schema designers make anything that might fail nullable, producing partial responses when errors occur. But since anything can fail, now everything is nullable—\nand we're drowning in null checks. We recklessly cast to non-null or fall back to the empty string out of desperation. And we still don't know what's truly nullable.\n\nNo more.\n\nThis talk introduces a new, pragmatic approach, born from years of work by the Nullability WG. We propose a future where schemas reflect the true nullability of business entities, and error handling is where it belongs: in your code, not your data. Use your language's built-in tools to handle errors ergonomically; and drop the unnecessary null checks. When you read a null, it should mean one thing: the absence of data.\n\nThis isn't some distant ideal on the horizon of GraphQL's future; with just 512 bytes added to your GraphQL client, you can start adopting this today. Come see how.",
- "goers": "7",
+ "goers": "9",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -2473,7 +2485,7 @@
"event_end": "2025-09-09 12:15",
"event_type": "Workshops",
"description": "In this workshop, we will look at different patterns to integrate various data sources in a federated graph using the Apollo Federation V2 spec, the Composite Schemas spec, WebAssembly with the recently released Component Model, and the Grafbase Gateway.\n\nGraphQL Federation is a fantastic pattern to combine APIs — called subgraphs — into a single schema while sharing types and declaratively depending from data from other subgraphs. In fact, it is too good to keep it to GraphQL subgraphs only — what if you could bring other kinds of APIs and data sources into your federated graph without having to write a dedicated GraphQL server in front of them?\n\nIn the course of the hands-on workshop, we will:- Integrate a REST API, a Postgres database and a Kafka instance using open source extensions,
- Use the gRPC extension and the MCP server to understand, integrate and query gRPC services over GraphQL,
- Build a new custom extension together
\nThe result will be a functioning GraphQL federated graph without GraphQL subgraphs, demonstrating that federation as a mechanism is useful beyond just GraphQL subgraphs.",
- "goers": "1",
+ "goers": "2",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -2578,7 +2590,7 @@
"event_end": "2025-09-09 14:15",
"event_type": "Breaks / Networking / Special Events",
"description": "Use this lunch time to go outside, visit local restaurants, and hang with your new GraphQL friends.\n\nOption 1 - Lunch restaurant guide\nOption 2 - A limited number of bag lunches will be available at the venue for you to take and either eat in the building or take outside.",
- "goers": "3",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"id": "c792d79fcbf90eafe5aeccec4e753e2a",
@@ -2665,7 +2677,7 @@
"event_end": "2025-09-09 15:45",
"event_type": "Unconference",
"description": "\"Unconference\" starts with U! Do you have a demo to share, an itch to scratch, lightning talk to workshop, or proposal you want to brainstorm? There's ample opportunity to bring your thoughts to the unconference table and seek or share feedback.\n\nThe unconference agenda will be created onsite - stay tuned for more info about how you can add your topics.",
- "goers": "1",
+ "goers": "2",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
@@ -2702,7 +2714,7 @@
"event_end": "2025-09-09 15:45",
"event_type": "Workshops",
"description": "Unleash the Power of Federation with Hive Gateway Discover the possibilities of your GraphQL APIs! Learn how to use GraphQL Federation to unite various services and get to know Hive Gateway, an open-source GraphQL router. During this practical exercise, you will configure a simple federated gateway and execute queries across merged schemas. Discover important features such as built-in monitoring with OpenTelemetry, automatic query batching for optimal efficiency, strong security choices like JWT authentication and rate limiting, and GraphQL Subscriptions for real-time data. Find out for yourself how Hive Gateway makes it easier to create scalable and maintainable GraphQL.",
- "goers": "5",
+ "goers": "6",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -2755,7 +2767,7 @@
"event_end": "2025-09-09 15:45",
"event_type": "GraphQL Working Group",
"description": "Curious about how observability is evolving in the GraphQL ecosystem? This session explores the current state of OpenTelemetry and its integration with GraphQL. We'll cover the fundamentals of OpenTelemetry, introduce the OpenTelemetry working group (https://github.com/graphql/otel-wg), and dive into tracing, logging, and metrics - all essential pillars of observability. You'll also learn how OpenTelemetry is being applied in distributed GraphQL architectures to improve performance monitoring and troubleshooting across services. Whether you're new to observability or looking to level up your GraphQL stack, this talk will bring you up to speed on where the community is heading.",
- "goers": "7",
+ "goers": "8",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -2800,7 +2812,7 @@
"event_start": "2025-09-09 15:45",
"event_end": "2025-09-09 16:00",
"event_type": "Breaks / Networking / Special Events",
- "goers": "3",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "Foyer Grote Zaal - 2nd Floor",
@@ -2837,7 +2849,7 @@
"event_end": "2025-09-09 16:40",
"event_type": "GraphQL Working Group",
"description": "Learn how to lower latency in your applications by streaming your GraphQL responses using the @defer and @stream directives. Learn the trade-offs of when to use these new directives and how they differ from GraphQL Subscriptions.\n\n@defer and @stream have been in development for some time now and have gone through many iterations. Learn about the motivation behind these changes and how they will lead to scalable GraphQL servers and efficient clients.",
- "goers": "5",
+ "goers": "7",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -2872,6 +2884,12 @@
"start_time_ts": 1757426400,
"end_date": "2025-09-09",
"end_time": "16:40:00",
+ "files": [
+ {
+ "path": "https://static.sched.com/hosted_files/graphqlconf2025/a8/Defer and Stream GraphQL Conf 2025.pdf",
+ "name": "Defer and Stream GraphQL Conf 2025.pdf"
+ }
+ ],
"event_subtype": ""
},
{
@@ -2966,7 +2984,7 @@
"event_end": "2025-09-09 17:30",
"event_type": "GraphQL Working Group",
"description": "This session is an opportunity for working group members to discuss the topics raised in the working group talks earlier in the day, and brainstorm ideas for moving forward.",
- "goers": "3",
+ "goers": "4",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -3003,7 +3021,7 @@
"event_end": "2025-09-10 17:30",
"event_type": "Breaks / Networking / Special Events",
"description": "SECURITY NOTICE\nPlease keep all personal belongings in your possession during the conference. GraphQL, The Linux Foundation nor the Pakhuis de Zwijger are responsible for lost or stolen items. If something is misplaced, check in with an Event Staff member at the registration desk.",
- "goers": "0",
+ "goers": "2",
"seats": "0",
"invite_only": "N",
"venue": "K Floor - Underground Floor",
@@ -3041,9 +3059,9 @@
"goers": "2",
"seats": "0",
"invite_only": "N",
- "venue": "BG Foyer - Ground Floor",
+ "venue": "Foyer Grote Zaal - 2nd Floor",
"id": "684f3f2c57d94cc9ad1e3bba980712ec",
- "venue_id": "2152797",
+ "venue_id": "2152803",
"event_start_year": "2025",
"event_start_month": "September",
"event_start_month_short": "Sep",
@@ -3075,7 +3093,7 @@
"event_end": "2025-09-10 09:10",
"event_type": "Developer Experience",
"description": "Over the past year I have been evolving graphql-request into Graffle, a modular type safe GraphQL Client. Most of its features are realized as plugins so much so that it actually has fewer capabilities than graphql-request at its core! Graffle initially grew out of my desire to have a JS GraphQL client with a fully featured and type safe document builder which I couldn’t get from tools like GenQL or Zeus at the time.\n\nGraffle is still a mostly unknown work in progress but I am ready to begin talking about it and already some early adopters have taken to giving regular feedback. I think GraphQL can benefit from strengthened integrations with TypeScript. My past work on Nexus underscores that belief and I've been happy to see more recent tools enter the space like Pothos.",
- "goers": "5",
+ "goers": "6",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -3121,7 +3139,7 @@
"event_end": "2025-09-10 09:30",
"event_type": "GraphQL in Production",
"description": "What started as a single developer's passion project now powers mission-critical APIs for tech giants like Twitter/X, Netflix, Amazon, AirBnB, and Atlassian. As the engine behind Spring for GraphQL and with over 2.2 million monthly downloads, GraphQL Java has become the Java implementation of GraphQL.\n\nHow does a volunteer-driven open source project not just survive, but thrive for a decade? In this talk, we'll share the crucial technical decisions and community building strategies that transformed a hobby project into an industry standard. We'll share how we fostered contributions from over 250 volunteers while maintaining high code quality and project momentum. You'll walk away with actionable insights to help you lead any software project, whether it's open source or enterprise.\n\nAbout the speakers: we are the maintainers of GraphQL Java, who have guided the project from its first commit to becoming the industry standard.",
- "goers": "2",
+ "goers": "3",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -3180,7 +3198,7 @@
"event_end": "2025-09-10 09:30",
"event_type": "GraphQL in Production",
"description": "Hacking the Federation Query Planner Federation allows concurrent execution across services - but there’s an edge case! And when it occurs, it’s a big performance problem and potentially very hard to solve.\n\nThis talk showcases an edge case we ran into at Yelp, how we solved it in the short term, and the what the long term spec changes are (specifically within the Composite Schemas spec).",
- "goers": "3",
+ "goers": "4",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
@@ -3215,6 +3233,12 @@
"start_time_ts": 1757487600,
"end_date": "2025-09-10",
"end_time": "09:30:00",
+ "files": [
+ {
+ "path": "https://static.sched.com/hosted_files/graphqlconf2025/ca/GraphQL Conf 2025_ Hacking the Federation Query Planner.pdf",
+ "name": "GraphQL Conf 2025_ Hacking the Federation Query Planner.pdf"
+ }
+ ],
"event_subtype": "Federation and distributed systems"
},
{
@@ -3262,7 +3286,7 @@
"event_end": "2025-09-10 09:30",
"event_type": "Developer Experience",
"description": "What if your GraphQL schema could do more than provide data? What if it could help your app be more accessible from the start? In this lightning talk, we'll explore an innovative idea of embedding accessibility metadata directly into GraphQL schemas. Inspired by using Kotlin semantics in Jetpack Compose, imagine annotating fields with labels, roles, or screen reader hints that can be used to support screen readers, improve navigation, and even power automated accessibility testing. By adding custom accessibility annotations, tools could generate more accessible UI components, which enhances both the developer experience and the user experience. This is a call to rethink the developer experience and treat accessibility as a first-class concern. Let's reimagine GraphQL not just as a data layer, but as an inclusive design enabler.",
- "goers": "4",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -3360,7 +3384,7 @@
"event_end": "2025-09-10 10:10",
"event_type": "Developer Experience",
"description": "Managing separate API definitions for REST and GraphQL APIs that serve the same underlying data can be inefficient and lead to duplicated efforts. At Pinterest, we are streamlining our API definitions and unifying our data models with TypeSpec. TypeSpec allows us to define our API shapes once and generate API schemas in multiple forms such as OpenAPI, Protobuf, and now GraphQL!\n \nWe’ve developed an open-source TypeSpec GraphQL Emitter which generates valid GraphQL schemas directly from TypeSpec definitions.\n \nJoin us for an overview of how TypeSpec and the GraphQL Emitter can streamline your API workflow. We'll explore:\n \n* How TypeSpec's unified definition approach accelerates development across multiple API specs\n* The inner workings of our open-source GraphQL Emitter\n* Our wins and lessons learned while building the GraphQL Emitter\n \nThis talk will be perfect for anyone interested in GraphQL schema generation, unified API definitions, and vague Lord of the Rings references! See you there!",
- "goers": "7",
+ "goers": "9",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -3458,7 +3482,7 @@
"event_end": "2025-09-10 10:50",
"event_type": "Developer Experience",
"description": "In theory, data loaders solve most \"N+1\" problems in GraphQL. In practice, they can be hard to implement, so they’re typically used only in performance-critical situations and often reactively, once inefficiencies surface. To achieve better performance, batching needs to be applied wherever possible.\n \nThis talk introduces batch resolvers, a more developer-friendly alternative to data loaders. While traditional GraphQL resolvers take a single input and produce a single output, batching resolvers take a list of inputs and return a list of outputs. A batch resolver can simply call a batch service API without worrying about data loaders.\n \nWhen a developer provides a batch resolver, our GraphQL server automatically aggregates individual data fetches into a single call to that resolver. It can also apply heuristics to improve aggregation, for example by consolidating different selection sets for the same entity into a single input. This design not only makes application developers’ lives easier, but also allows the server to better optimize query execution by coordinating batch dispatching as part of a broader execution strategy.",
- "goers": "7",
+ "goers": "9",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -3493,6 +3517,12 @@
"start_time_ts": 1757492400,
"end_date": "2025-09-10",
"end_time": "10:50:00",
+ "files": [
+ {
+ "path": "https://static.sched.com/hosted_files/graphqlconf2025/ad/GraphQLConf_ From Data Loaders to Batch Resolvers.pdf",
+ "name": "GraphQLConf_ From Data Loaders to Batch Resolvers.pdf"
+ }
+ ],
"event_subtype": "Backend"
},
{
@@ -3615,7 +3645,7 @@
"event_end": "2025-09-10 10:50",
"event_type": "GraphQL in Production",
"description": "GraphQL provides flexibility in fetching data but this can prove challenging for caching. In this talk I cover the basics of caching in GraphQL such as layers you can cache at a high level. Layers such as the CDN, client side, server side, and database are touched upon with solutions from the community. The talk will also cover when to use each layer and what statistics to look at for improvement. I talk about how caching at multiple layers provides the best experience for the end user. By the end of this talk beginners will have a path forward to how they can cache at different layers for better performance.",
- "goers": "6",
+ "goers": "8",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -3666,7 +3696,7 @@
"event_start": "2025-09-10 10:50",
"event_end": "2025-09-10 11:15",
"event_type": "Breaks / Networking / Special Events",
- "goers": "4",
+ "goers": "6",
"seats": "0",
"invite_only": "N",
"venue": "Foyer Grote Zaal - 2nd Floor",
@@ -3749,7 +3779,7 @@
"event_end": "2025-09-10 11:45",
"event_type": "GraphQL in Production",
"description": "Traditional GraphQL servers execute queries field by field with a depth-first algorithm as defined in the GraphQL specification. In contrast, GraphQL federation gateways need to partition the query and retrieve chunks of data from external data sources, creating new challenges. We'll present how we solved those challenges with a focus on performance.\n \nThe first, query planning, is to find the best possible plan with the multiple possibilities federation offers to unify your data and the various data sources with their requirements. We express this problem as a graph of possibilities and solve it as a Steiner Tree problem. The second challenge is performant execution. As we need to read and write overlapping chunks of the response in parallel, it's hard to be as efficient as a traditional GraphQL server writing a response iteratively with independent fields. We build an execution DAG with field dependencies, parallelizing work as much as possible without any lock on the response. We also pre-compute the expected data shape to ingest and validate incoming data into the response without any intermediate memory allocation.",
- "goers": "3",
+ "goers": "4",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
@@ -3841,7 +3871,7 @@
"event_end": "2025-09-10 12:25",
"event_type": "Developer Experience",
"description": "One of the great achievements of GraphQL is composable, full-stack type safety: a strongly-typed schema, against which one writes client components, and from which minimal yet sufficient queries are generated. This seamless flow from database to UI, with immediate feedback, compile-time guarantees and great performance, represents an unmatched DevEx breakthrough.\n \nBut what if we use a full-stack client (like Isograph aims to be)? Or use a rich client in combination with a Hasura, Prisma or PostGraphile, and effectively write components against an SQL schema? Have both the GraphQL schema and its operation language become mere implementation details?\n \nIn this talk, I'll explore how GraphQL's apparent disappearance into tooling actually represents its ultimate victory. Even as GraphQL-the-syntax fades from view, its architectural innovations—fragment composability, full-stack type safety, document merging, persisted operations—become the invisible foundation of modern development.\n \nThe best way to honor this legacy isn't to protect its syntax — it's to let its principles be reborn in new forms, evolving as our tools evolve, making app development better for years to come.",
- "goers": "4",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -3984,7 +4014,7 @@
"event_start": "2025-09-10 12:25",
"event_end": "2025-09-10 13:40",
"event_type": "Breaks / Networking / Special Events",
- "goers": "3",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "Foyer Grote Zaal - 2nd Floor",
@@ -4021,7 +4051,7 @@
"event_end": "2025-09-10 14:10",
"event_type": "Developer Experience",
"description": "`useQuery` is a powerful and simple abstraction, but there is so much more to Apollo Client today. In this talk we’ll re-introduce Apollo Client for this new era. Query preloading, suspense, fragment APIs, and data masking have given GraphQL practitioners a toolset to build sophisticated, scalable, and highly performant applications like never before. Learn about these new APIs, upgraded tooling, and how version 4.0 (and beyond) gives users a leaner, cleaner, and more capable open source GraphQL client.",
- "goers": "4",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -4056,6 +4086,12 @@
"start_time_ts": 1757504400,
"end_date": "2025-09-10",
"end_time": "14:10:00",
+ "files": [
+ {
+ "path": "https://static.sched.com/hosted_files/graphqlconf2025/69/reintroducing Apollo Client 4.pdf",
+ "name": "reintroducing Apollo Client 4.pdf"
+ }
+ ],
"event_subtype": "Frontend"
},
{
@@ -4111,7 +4147,7 @@
"end_time": "14:10:00",
"files": [
{
- "path": "https://static.sched.com/hosted_files/graphqlconf2025/95/LinkedIn's Code-First Approach To Federated GraphQL With gRPC.pdf",
+ "path": "https://static.sched.com/hosted_files/graphqlconf2025/78/LinkedIn's Code-First Approach To Federated GraphQL With gRPC.pdf",
"name": "LinkedIn's Code-First Approach To Federated GraphQL With gRPC.pdf"
}
],
@@ -4179,7 +4215,7 @@
"event_end": "2025-09-10 14:50",
"event_type": "GraphQL in Production",
"description": "Imagine you have a decade old REST API codebase with thousands of daily commits by hundreds of engineers, how would you incrementally adopt GraphQL? How would the data models be compatible with both REST and GraphQL to avoid divergence? How…?\n\nWe will share Instagram’s journey from 100% REST API development to 95%+ new APIs developed in GraphQL over a two year period.",
- "goers": "5",
+ "goers": "6",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -4253,7 +4289,7 @@
"event_end": "2025-09-10 14:30",
"event_type": "GraphQL in Production",
"description": "Any company that wants to innovate deals with change. Within GraphQL that often means introducing new fields but also deprecating old fields & types.\nThe faster you can get rid of these old fields & types the less complex your architecture is and less complexity means an easier time building new features!\n\nWe saw this problem and got tired of the endless “please migrate away from field X to field Y before Z” emails, which were often not even sent to the right group of consumers!\n\nWe automated this process by building a slack bot that uses production analytical data to figure out what clients are using deprecated fields and automated the communication!",
- "goers": "4",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -4305,7 +4341,7 @@
"event_end": "2025-09-10 14:50",
"event_type": "Developer Experience",
"description": "Ever wondered if two seemingly different GraphQL queries actually return the same data? Or how to ensure that complex queries—packed with type conditions and directives like @skip/@include—still mean the same thing after a major refactor? In this talk, we’ll explore a novel static analysis technique that efficiently checks whether one query’s response is always a subset of another’s. By performing this subset test in both directions, we can reliably determine query equivalence—bringing new clarity to complex GraphQL operations.",
- "goers": "2",
+ "goers": "3",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -4340,6 +4376,12 @@
"start_time_ts": 1757508000,
"end_date": "2025-09-10",
"end_time": "14:50:00",
+ "files": [
+ {
+ "path": "https://static.sched.com/hosted_files/graphqlconf2025/69/Efficient Semantic Comparison of GraphQL Queries.pdf",
+ "name": "Efficient Semantic Comparison of GraphQL Queries.pdf"
+ }
+ ],
"event_subtype": "Testing"
},
{
@@ -4403,7 +4445,7 @@
"event_end": "2025-09-10 15:30",
"event_type": "GraphQL in Production",
"description": "\"There are only two hard things in Computer Science: cache invalidation and naming things\".\n\nGraphQL provides many benefits over other query languages. Federation builds on top of this foundation to provide even more flexibility and power. But even with all that GraphQL has to offer, the problem of naming remains.\n\nIn this talk, Jeff Dolle, from The Guild, will share what he's learned about schema design: proven design philosophies, designing for forward compatibility, exposing errors through types, and tips for how to avoid ambiguous or misleading type names.\n\nTogether, we will then go through an example product design meeting: taking user stories and building a complete GraphQL schema.",
- "goers": "5",
+ "goers": "8",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -4454,7 +4496,7 @@
"event_start": "2025-09-10 15:30",
"event_end": "2025-09-10 15:50",
"event_type": "Breaks / Networking / Special Events",
- "goers": "4",
+ "goers": "6",
"seats": "0",
"invite_only": "N",
"venue": "Foyer Grote Zaal - 2nd Floor",
@@ -4491,7 +4533,7 @@
"event_end": "2025-09-10 16:20",
"event_type": "GraphQL in Production",
"description": "Plugging an LLM into GraphQL sounds simple—until it drowns in thousands of fields, types, and connections. Most models today can’t reason effectively over large APIs without brittle prompt hacks or hardcoded shortcuts.\n\nModel Context Protocol (MCP) is the cutting-edge solution for enabling seamless, dynamic interactions between LLMs and external tooling. It standardizes the way models interact with various tools, breaking down barriers between APIs and AI systems.\n\nIn this talk, you’ll discover how to turn any GraphQL endpoint into an MCP-compatible server with minimal overhead. Reuse your existing GraphQL infrastructure to avoid reinventing authorization, schema management, and validation enabling scalable, robust LLM integrations. We’ll compare existing tools and automated schema discovery against hand-crafted mappers based on benchmarks of public GraphQL APIs. Join us to learn about our experiences and recommendations for your next GenAI project, powered by GraphQL.",
- "goers": "3",
+ "goers": "5",
"seats": "0",
"invite_only": "N",
"venue": "IJzaal - 5th Floor",
@@ -4544,7 +4586,7 @@
"event_end": "2025-09-10 16:20",
"event_type": "GraphQL in Production",
"description": "Pinterest is adopting GraphQL. Given our app's size, we can't simply rewrite everything in one fell swoop. So, we created the Relay Migration API (RMA) — a set of tools to incrementally migrate your React components to consume GraphQL-shaped data while making requests to REST endpoints.\n\nI'll share how we've significantly evolved the RMA after migrating four key surfaces, focusing on the advanced challenges we faced:\n\n- RMA recreates objects on every render by default, breaking components expecting stable references. We implemented a caching layer, similar to Relay's, to return consistent objects between renders.
- RMA originally read from static source objects, creating stale data when Redux state changed. Our solution: a selective subscription system that re-computes GraphQL data only when source fields change, keeping data current while eliminating unnecessary renders.
- And in cases where Redux and GraphQL schemas fundamentally differ, we built bidirectional mapping with schema validation to ensure data consistency.
\nJoin us to learn how the Relay migration API has evolved and how it helps you accelerate your GraphQL migrations without disrupting existing applications!",
- "goers": "5",
+ "goers": "6",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
@@ -4590,7 +4632,7 @@
"event_end": "2025-09-10 16:45",
"event_type": "Keynote Sessions",
"description": "This talk will give attendees an overview of the structure of GraphQL's official organizations: The GraphQL Foundation and the GraphQL Specification Project. It will get specific about the governance and roadmaps of each organization and their specific priorities in 2025 and beyond.\n\nIn my time serving in these various institutions, I've noticed that even the most active GraphQL practitioners aren't fully aware of what they are and what they do. Attendees will learn about the GraphQL Working Group, the Technical Steering Committee, and the Foundation's Governing Board. We'll also touch upon the various technical working groups and the new Community Working Group. The talk culminates in a call to action for folks to get involved.",
- "goers": "8",
+ "goers": "11",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
@@ -4635,7 +4677,7 @@
"event_start": "2025-09-10 16:45",
"event_end": "2025-09-10 17:00",
"event_type": "Keynote Sessions",
- "goers": "6",
+ "goers": "9",
"seats": "0",
"invite_only": "N",
"venue": "Grote Zaal - 2nd Floor",
diff --git a/scripts/sync-sched/speakers.json b/scripts/sync-sched/speakers.json
index 2ecd1aa2c7..f8cd719318 100644
--- a/scripts/sync-sched/speakers.json
+++ b/scripts/sync-sched/speakers.json
@@ -156,7 +156,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756487485564
+ "~syncedDetailsAt": 1757102434255
},
{
"username": "ajhingran",
@@ -275,7 +275,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756904595242
+ "~syncedDetailsAt": 1757102436398
},
{
"username": "amy1908",
@@ -1417,7 +1417,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756472738367
+ "~syncedDetailsAt": 1757102430680
},
{
"username": "ivan.goncharov.ua",
@@ -1531,7 +1531,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756472738367
+ "~syncedDetailsAt": 1757102430680
},
{
"username": "jeff.auriemma",
@@ -1557,7 +1557,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756472738367
+ "~syncedDetailsAt": 1757102430680
},
{
"username": "jeff737",
@@ -1577,7 +1577,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756472738367
+ "~syncedDetailsAt": 1757102430680
},
{
"username": "jem28",
@@ -1597,7 +1597,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756487482717
+ "~syncedDetailsAt": 1757102430680
},
{
"username": "jens63",
@@ -1723,7 +1723,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756487485564
+ "~syncedDetailsAt": 1757102436398
},
{
"username": "kamilkisiela",
@@ -1753,7 +1753,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487485564
+ "~syncedDetailsAt": 1757102436398
},
{
"username": "keerthan.ekbote",
@@ -1916,7 +1916,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756472738367
+ "~syncedDetailsAt": 1757102430680
},
{
"username": "ldebruijn",
@@ -1952,7 +1952,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756472738367
+ "~syncedDetailsAt": 1757102430680
},
{
"username": "lee_byron.25krdom6",
@@ -2055,7 +2055,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756472738367
+ "~syncedDetailsAt": 1757102430680
},
{
"username": "mail1232",
@@ -2063,8 +2063,8 @@
"position": "Senior Staff Engineer",
"name": "Lenz Weber-Tronic",
"about": "Lenz Weber-Tronic works as a Senior Staff Software Engineer at Apollo GraphQL, where he is part of the team maintaining the Apollo TypeScript Client. He is a maintainer of Redux Toolkit and if he’s not currently trying to summon elder gods with weird TypeScript incantations he can usually be found answering questions on Apollo and Redux usage or opening random PRs all over GitHub.",
- "location": "",
- "url": "",
+ "location": "Germany",
+ "url": "https://phryneas.de/",
"avatar": "//avatars.sched.co/1/fa/23098771/avatar.jpg.320x320px.jpg?314",
"socialurls": [],
"_years": [
@@ -2110,7 +2110,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756487485564
+ "~syncedDetailsAt": 1757102436398
},
{
"username": "marion84",
@@ -2154,7 +2154,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756472738367
+ "~syncedDetailsAt": 1757102430680
},
{
"username": "martijn.walraven",
@@ -2170,7 +2170,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756472738367
+ "~syncedDetailsAt": 1757102430680
},
{
"username": "martinbonnin42",
@@ -2240,7 +2240,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487485564
+ "~syncedDetailsAt": 1757102436398
},
{
"username": "matteo.collina1",
@@ -2260,7 +2260,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756487485564
+ "~syncedDetailsAt": 1757102436398
},
{
"username": "mauricio.montalvo.guzman",
@@ -2276,7 +2276,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487482717
+ "~syncedDetailsAt": 1757102434255
},
{
"username": "meenakshi.dhanani1",
@@ -2351,7 +2351,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487482717
+ "~syncedDetailsAt": 1757102434255
},
{
"username": "michael.astle",
@@ -2436,7 +2436,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487482717
+ "~syncedDetailsAt": 1757102434255
},
{
"username": "patrick.arminio",
@@ -2544,7 +2544,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487485564
+ "~syncedDetailsAt": 1757102436398
},
{
"username": "rachit_sengupta",
@@ -2664,7 +2664,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487482717
+ "~syncedDetailsAt": 1757102434255
},
{
"username": "robrichard87",
@@ -2680,7 +2680,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487482717
+ "~syncedDetailsAt": 1757102434255
},
{
"username": "ruben.cagnie",
@@ -2711,7 +2711,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487482717
+ "~syncedDetailsAt": 1757102434255
},
{
"username": "saihaj",
@@ -2801,7 +2801,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487485564
+ "~syncedDetailsAt": 1757102436398
},
{
"username": "sasha177",
@@ -2964,7 +2964,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756487485564
+ "~syncedDetailsAt": 1757102436398
},
{
"username": "spencer211",
@@ -3001,7 +3001,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487482717
+ "~syncedDetailsAt": 1757102434255
},
{
"username": "stefan239",
@@ -3292,7 +3292,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487482717
+ "~syncedDetailsAt": 1757102434255
},
{
"username": "vincent.desmares",
@@ -3327,7 +3327,7 @@
"_years": [
2025
],
- "~syncedDetailsAt": 1756487482717
+ "~syncedDetailsAt": 1757102434255
},
{
"username": "watson17",
@@ -3343,7 +3343,7 @@
2024,
2025
],
- "~syncedDetailsAt": 1756487485564
+ "~syncedDetailsAt": 1757102436398
},
{
"username": "x65han",