diff options
author | nixpkgs-review <nixpkgs-review@example.com> | 2020-11-05 10:56:21 -0300 |
---|---|---|
committer | nixpkgs-review <nixpkgs-review@example.com> | 2020-11-05 10:58:49 -0300 |
commit | f740868e51d21db1b89c248d3dd9db808e6a037e (patch) | |
tree | 3be3c1733c9106f28bb423ccc405d884e1aa786e /_slides/2020-10-22-graphql-for-bffs-navigating-the-trade-offs.slides | |
parent | Extract translations from slides, too (diff) | |
download | euandre.org-f740868e51d21db1b89c248d3dd9db808e6a037e.tar.gz euandre.org-f740868e51d21db1b89c248d3dd9db808e6a037e.tar.xz |
Add draft slides as unpublished with extracted po files
Diffstat (limited to '_slides/2020-10-22-graphql-for-bffs-navigating-the-trade-offs.slides')
-rw-r--r-- | _slides/2020-10-22-graphql-for-bffs-navigating-the-trade-offs.slides | 216 |
1 files changed, 216 insertions, 0 deletions
diff --git a/_slides/2020-10-22-graphql-for-bffs-navigating-the-trade-offs.slides b/_slides/2020-10-22-graphql-for-bffs-navigating-the-trade-offs.slides new file mode 100644 index 0000000..17e15a6 --- /dev/null +++ b/_slides/2020-10-22-graphql-for-bffs-navigating-the-trade-offs.slides @@ -0,0 +1,216 @@ +--- +title: "GraphQL for BFFs: navigating the trade-offs" +date: 2020-10-22 +layout: slides +lang: en +ref: graphql-for-bffs-navigating-the-trade-offs +published: false +--- + +# GraphQL for BFFs + +Navigating the trade-offs + +??? + +1. slides já estão online, com sugestões incorporadas +2. artigo online +3. tupy: começar pelos slides é mais fácil + +--- + +# Mobile is **hard** + +--- + +## Immature ecosystem + +??? + +Compared to desktop, browser and server ecosystem, which are many years older. + +iOS SDK released on 2008, which is: +- the same year Python 3.0 was released; +- 1 year after Clojure's release and 13 years after Java's and JavaScript's + release; +- 10 years after GTK release + +--- + +## Almost no competition + + +??? + +Effectively a duopoly, better than a monopoly, but meh. + +Closed, walled gardens. + +Less competition, lower quality. + +Compare to: browser ecosystem, desktop ecosystem + +--- + +## Little to no control over the environment + +??? + +Bad on Android, worse on iOS. + +--- + +## Our usage of GraphQL + +History goes here + +??? + +savings: React Native, GraphQL, TypeScript, stormshield + +--- + +# Proposal + +Adopt GraphQL as the default for BFFs + +--- + +## Target + +**data fetching** and **chaining** + +??? + +It is not about: +- over fetching +- different clients with different data requirements + +--- + +## Goal + +Move **complexity** out of mobile to the backend, get more **dynamicity** out of it +??? + +The complexity doesn't vanish or shrink, it just shifts. + +https://media.tenor.com/images/ce1962c14da22c969e664560e098b2bc/tenor.gif + +--- + +# Alternatives +AKA, why not "just use a RESTful BFF"? + +--- + +## REST + +??? + +It doesn't address JOINs + +--- + +## Fulcro + +??? + +For 10 reasons for using GraphQL, 8~9 are shared for Fulcro. + +The other 1~2 aren't so relevant: +- data > syntax: already false for Swift, Kotlin, Dart +- attributes > aggregates: already false for Swift, Kotlin, Dart + +--- + +## Falcor + +--- + +## SOAP + +--- + +# Implications + +--- + +## Invalid arguments + +--- + +### "GraphQL isn't RESTful" + +🤷 + +??? + +Similar to saying "REST isn't GraphQL" + +--- + +### "GraphQL has a bad caching story" + +True, but we don't do HTTP caching + +--- + +### "query-params can be used for selection in a BFF with REST" + +👎 + +??? + +This isn't RESTful, and is an *ad-hoc* querying format + +--- + +### "over-fetching isn't a problem" + +??? + +That is not the main reason for GraphQL + +--- + +### "library X for GraphQL is bad" + +--- + +## Valid arguments + +--- + +### "Throttling by query complexity is hard" + +--- + +## Lessons learned + +--- + +### Error handling + +--- + +# Takeaways + +--- + +## None of the points are specific to Flutter + +--- + +## GraphQL enables declarative **dynamicity** + +--- + +## Thank you! + +References: + +1. these slides: FIXME [{{ site.tld }}/slides.html]({% link slides.md %}) +2. [prose version of this presentation]({% link _articles/2020-10-22-graphql-for-bffs-navigating-the-trade-offs.md %}) +3. "[Clients in control: building demand-driven systems with Om Next](https://www.youtube.com/watch?v=Zb18iPjDgwM)", by António Nuno Monteiro +4. "[Om Next](https://www.youtube.com/watch?v=MDZpSIngwm4)", by David Nolen |