
1. Why not GraphQL?
1.1. Drawbacks of GraphQL
1.1.1. Additional overhead
1.1.1.1. Defined data format
1.1.1.1.1. Typed schemas
1.1.1.2. Client needs to know what data it wants
1.1.2. It's not REST
1.1.3. More "magic"
1.2. Benefits of REST
1.2.1. Simpler, easier to get started
1.2.2. Better suited for read-only or low data APIs
1.2.3. It's REST
1.2.4. No specific data format
2. Schemas
2.1. Type-safe contract between client and server
2.2. Client can only request data defined in the schema
2.3. Versioning handled through deprecation
2.4. Demo
2.5. Design approaches
2.5.1. Schema-first
2.5.2. Code-first
2.5.3. Make this decision up front
3. Subscriptions
3.1. Allows server to push changes to client
3.2. Transport independent (web socket is most common)
3.3. Demo
4. Implementations
4.1. Client-side
4.1.1. Apollo Client
4.1.2. apollo-elements
4.2. Server-side
4.2.1. Java
4.2.1.1. GraphQL Java Tools
4.2.1.2. DGS Framework (Domain Graph Service)
4.2.1.2.1. Supports Federation
4.2.1.3. MicroProfile GraphQL
4.2.1.4. Spring GraphQL
4.2.2. JavaScript
4.2.2.1. Apollo Server (Node)
4.2.2.1.1. Apollo Federation
4.2.2.2. GraphQL Yoga
4.3. Demo
4.4. Tools
4.5. Databases
4.6. Services
5. Resources
5.1. GraphQL Site
5.2. Schema-First GraphQL: The Road Less Travelled
5.3. The Problems of "Schema-First" GraphQL Server Development | Prisma
5.4. GraphQL Landscape
5.5. Altair GraphQL Client
5.6. How to GraphQL Tutorial
5.7. react-apollo example
5.8. MicroProfile GraphQL Example
5.8.1. MicroPropfile GraphQL Experimental Features
6. Federation
6.1. ...
7. Kito D. Mann (@kito99) https://kitomann.com
7.1. https://virtua.tech Principal Consultant at Virtua: Consulting, training, mentoring on web dev and back-end Java
7.2. Java Champion
7.3. Participated in several Java Community Process expert groups (including CDI, JSF, and Portlets)
7.4. Jakarta EE Guardian Leadership Council Member
7.5. Google Developer Expert on Web Technologies
7.6. Co-host of Stackd Podcast (https://stackdpodcast.com)
7.7. Internationally recognized speaker
7.8. Founder of https://SpeakerTrax.com
8. You
9. What is GraphQL?
9.1. Alternate approach to client/server communication
9.2. Simple example
9.3. Does not use REST
9.4. Origins
9.4.1. Created by Facebook in 2012
9.4.2. Open sourced in 2015
9.4.3. Started in 2017
9.4.4. Used by many large companies
10. Why GraphQL?
10.1. Drawbacks of REST
10.1.1. Endpoint decides what data is returned
10.1.2. Data can be split amongst several calls
10.1.3. No specific data format
10.1.3.1. Layout of the data is up to the endpoint
10.1.4. No push standard
10.2. Benefits of GraphQL
10.2.1. Client decides what data it wants
10.2.1.1. Server decides where to get it
10.2.1.1.1. Well suited for BFFs
10.2.2. Single consolidated, dynamic endpoint
10.2.3. Subscriptions
10.2.4. Defined data format
10.2.4.1. Typed schemas