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

Modeling GraphQL

Modeling GraphQL

The talk about GraphQL modelling presented into #ReactSP28 meetup.

It's almost the same talk presented in the ReactConf Brazil 2018 (http://reactconfbr.com.br/), however with few differences and more stuff about the modelling of GraphQL schemas, like the context modelling.

This is the following link for the talk presented into ReactConf: https://speakerdeck.com/renatobenks/modeling-graphql-apis

Check it out about the meetup: https://www.meetup.com/pt-BR/ReactJS-SP/events/256624219/

Renato Benkendorf

November 28, 2018
Tweet

More Decks by Renato Benkendorf

Other Decks in Technology

Transcript

  1. © 2018 – Creditas Soluções Financeiras Ltda. 5 © 2018

    – Creditas Consultoria Financeira Ltda. Software Engineer @renatobenks
  2. © 2018 – Creditas Soluções Financeiras Ltda. 6 © 2018

    – Creditas Consultoria Financeira Ltda. Software Engineer @renatobenks creditas.com.br @CreditasBR Fintech Plataforma online Empréstimo com garantia
  3. © 2018 – Creditas Soluções Financeiras Ltda. 14 Scaling GraphQL

    Aggregation layer (ESB, BFF, API Gateway, Orchestrator)
  4. © 2018 – Creditas Soluções Financeiras Ltda. 19 Demystifying GraphQL

    Graph • The objects are vertices or nodes. • The links are edges.
  5. © 2018 – Creditas Soluções Financeiras Ltda. 20 Demystifying GraphQL

    Query language (QL) refers to any computer programming language that requests and retrieves data by sending queries
  6. © 2018 – Creditas Soluções Financeiras Ltda. 21 Demystifying GraphQL

    GraphQL • The nodes are the object types. • The edges are the fields.
  7. © 2018 – Creditas Soluções Financeiras Ltda. 26 Modeling a

    GraphQL API 1. data modelling 2. context modelling
  8. © 2018 – Creditas Soluções Financeiras Ltda. 27 Modeling a

    GraphQL API data modelling 1. Using “endpoint style” rather than thinking in graphs 2. Mapping their GraphQL schema directly to their database tables (foreign keys and all) 3. Mapping their GraphQL schema directly to their back-end data model (eg. your model classes from your ORM or the like)
  9. © 2018 – Creditas Soluções Financeiras Ltda. 28 Modeling a

    GraphQL API data modelling Using “endpoint style” rather than thinking in graphs
  10. © 2018 – Creditas Soluções Financeiras Ltda. 29 Modeling a

    GraphQL API data modelling Using “endpoint style” rather than thinking in graphs
  11. © 2018 – Creditas Soluções Financeiras Ltda. 30 Modeling a

    GraphQL API data modelling Mapping their GraphQL schema directly to their database tables
  12. © 2018 – Creditas Soluções Financeiras Ltda. 31 Modeling a

    GraphQL API data modelling Mapping their GraphQL schema directly to their database tables
  13. © 2018 – Creditas Soluções Financeiras Ltda. 32 Modeling a

    GraphQL API data modelling thinking in graphs
  14. © 2018 – Creditas Soluções Financeiras Ltda. 33 Modeling a

    GraphQL API data modelling thinking in graphs
  15. © 2018 – Creditas Soluções Financeiras Ltda. 34 data modelling

    Mapping their GraphQL schema directly to their back-end data model Modeling a GraphQL API
  16. © 2018 – Creditas Soluções Financeiras Ltda. 35 data modelling

    Mapping their GraphQL schema directly to their back-end data model Modeling a GraphQL API
  17. © 2018 – Creditas Soluções Financeiras Ltda. 36 Modeling a

    GraphQL API data modelling thinking in graphs
  18. © 2018 – Creditas Soluções Financeiras Ltda. 37 Modeling a

    GraphQL API data modelling thinking in graphs
  19. © 2018 – Creditas Soluções Financeiras Ltda. 39 Modeling a

    GraphQL API context modelling Sales context
  20. © 2018 – Creditas Soluções Financeiras Ltda. 40 Modeling a

    GraphQL API context modelling Ticket context
  21. © 2018 – Creditas Soluções Financeiras Ltda. 41 Modeling a

    GraphQL API context modelling Sales + Ticket
  22. © 2018 – Creditas Soluções Financeiras Ltda. 42 "With GraphQL,

    you model your business domain as a graph" Modeling a GraphQL API
  23. © 2018 – Creditas Soluções Financeiras Ltda. 45 Use case

    current scenario • domain business currently is servicing • domain data in redux • mapping the boundaries
  24. © 2018 – Creditas Soluções Financeiras Ltda. 46 Use case

    next challenges • app cross-squad • app composition • manage a lot of data from different domains
  25. © 2018 – Creditas Soluções Financeiras Ltda. 47 © 2018

    – Creditas Consultoria Financeira Ltda. We're hiring vagas.creditas.com.br