Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Creating a federated schema for a global compan...

Apollo GraphQL
May 22, 2019
83

Creating a federated schema for a global company by Shane Myrick, Senior Software Developer at Expedia Group

Learn about how Expedia Group migrated from REST to GraphQL and why they decided to use the technology. We will also cover the tools used like graphql-java and Expedia's open source library, graphql-kotlin, and the challenges faced when teaching developers new technologies and how they create a schema while communicating with teams across the world

Apollo GraphQL

May 22, 2019
Tweet

Transcript

  1. 2

  2. 5 50+ front-end apps and client pages Company Scope 500+

    developers across the globe 20+ API Teams for hotels, flights, bookings…
  3. 9 Client Connections Alexa Chat PWA iOS Android Hotel Domain

    Services Flight Domain Services Customer Domain Services Checkout Domain Services
  4. 10 Client Connections Alexa Chat PWA iOS Android Hotel Domain

    Services Flight Domain Services Customer Domain Services Checkout Domain Services BFF
  5. 11 GraphQL Connections Hotel domain services Alexa Chat PWA iOS

    Android Flight domain services Customer domain services Checkout domain services GraphQL API
  6. 12 GraphQL Connections Hotel domain services Alexa Chat PWA iOS

    Android Hotel Service Flight Service Flight domain services Customer Service Customer domain services Checkout domain services Checkout Service GraphQL Gateway
  7. 14 Different tools for logging and metrics Existing Technology Java

    APIs and libraries Servers in different technologies
  8. 24 Strive for the best, scalable solution first Schema Rules

    Documentation – Write it down Schema reviews with teams
  9. 25 Only add data that is needed Schemas built by

    clients Have the client create their perfect schema Work to adapt the service layer
  10. 28 Create a community around a great schema Lessons Learned

    Standardize tooling to meet developer needs Client-first schema
  11. 32 Resources • Expedia Group Info & Brands • https://www.expediagroup.com/

    • GraphQL website and pictures • https://graphql.org/ • GraphQL Java • https://github.com/graphql-java/graphql-java • GraphQL Kotlin • https://github.com/ExpediaDotCom/graphql-kotlin • https://medium.com/expedia-engineering/21d1dc2f6e27 • Apollo Platform, Engine, Gateway and pictures • https://www.apollographql.com/platform/ • Principled GraphQL • https://principledgraphql.com/ • Hotel Search Results • https://www.expedia.com/Hotels