$30 off During Our Annual Pro Sale. View Details »

Graphql on production with AWS

Graphql on production with AWS

Bogdan Nedelcu

July 16, 2019
Tweet

More Decks by Bogdan Nedelcu

Other Decks in Technology

Transcript

  1. @bogdanned github.com/bogdanned
    GraphQL @production on AWS
    !1

    View Slide

  2. @bogdanned github.com/bogdanned
    – The Wikipedia
    “In the context of computer programming, magic … it is
    used to describe code that handles complex tasks while
    hiding that complexity to present a simple interface. ”
    !2

    View Slide

  3. @bogdanned github.com/bogdanned
    @production
    !3
    - critical user impact
    - limited replicability
    - resilience && scalability$

    View Slide

  4. @bogdanned github.com/bogdanned !4
    - Schema Design @production
    - System Design with Graphql

    View Slide

  5. @bogdanned github.com/bogdanned !5
    - Schema Design @production
    - System Design with Graphql

    View Slide

  6. @bogdanned github.com/bogdanned !6
    - Superfluous Resolver Calls

    View Slide

  7. @bogdanned github.com/bogdanned !7

    View Slide

  8. @bogdanned github.com/bogdanned !8

    View Slide

  9. @bogdanned github.com/bogdanned !9
    So should we dataload the whole thing?
    Requests Saved = NP - NC

    View Slide

  10. @bogdanned github.com/bogdanned !10
    - Schema Design @production
    - System Design with Graphql

    View Slide

  11. @bogdanned github.com/bogdanned !11
    - Schema Design @production
    - System Design with Graphql

    View Slide

  12. @bogdanned github.com/bogdanned
    What does GraphQL implies for our systems?
    !12

    View Slide

  13. @bogdanned github.com/bogdanned !13
    –The GraphQL Website
    “GraphQL is a query language for your API, and a server-side runtime
    for executing queries by using a type system you define for your data.”

    View Slide

  14. @bogdanned github.com/bogdanned
    –Johnny Appleseed
    Under the hood …
    !14
    - The Api Gateway pattern
    - The Enterprise Data Model pattern
    - The Integration Database pattern
    - The Backend for Front End pattern: BFFF

    View Slide

  15. @bogdanned github.com/bogdanned
    –Johnny Appleseed
    Under the hood …
    !15
    - The Api Gateway pattern
    - The Enterprise Data Model pattern
    - The Integration Database pattern
    - The Backend for Front End pattern: BFFF

    View Slide

  16. @bogdanned github.com/bogdanned !16
    - service client coupling
    - too many round trips
    - redundant edge functions

    View Slide

  17. @bogdanned github.com/bogdanned !17

    View Slide

  18. @bogdanned github.com/bogdanned !18
    - reverse proxy
    - gateway offloading
    - request aggregation

    View Slide

  19. @bogdanned github.com/bogdanned
    - single point of failure
    - vertical scaling
    - horizontal scaling )
    - release coupling
    !19

    View Slide

  20. @bogdanned github.com/bogdanned
    –Johnny Appleseed
    Under the hood …
    !20
    - The Api Gateway pattern
    - The Enterprise Data Model pattern
    - The Integration Database pattern
    - The Backend for Front End pattern: BFFF

    View Slide

  21. @bogdanned github.com/bogdanned !21
    Apollo Federation
    -separation of concerns
    -distributed graph
    -development tooling

    View Slide

  22. @bogdanned github.com/bogdanned !22
    -heterogeneity
    -schema matching
    -schema mapping
    Federated Database

    View Slide

  23. @bogdanned github.com/bogdanned
    – Phil Calcado, Some thoughts on GraphQL vs. BFF 2019
    “ .. it is hard for me to believe that you can combine the needs of
    many different applications, owned by different teams, with different
    users and use cases, in a single schema”
    !23

    View Slide

  24. @bogdanned github.com/bogdanned !24

    Which amount?

    View Slide

  25. @bogdanned github.com/bogdanned
    –Johnny Appleseed
    Under the hood …
    !25
    - The Api Gateway pattern
    - The Enterprise Data Model pattern
    - The Integration Database pattern
    - The Backend for Front End pattern: BFFF
    ,

    View Slide

  26. @bogdanned github.com/bogdanned !26

    View Slide

  27. @bogdanned github.com/bogdanned
    Thank @you !
    !27

    View Slide