aboutsummaryrefslogtreecommitdiff
path: root/_slides/2020-10-22-graphql-for-bffs-navigating-the-trade-offs.slides
diff options
context:
space:
mode:
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.slides216
1 files changed, 0 insertions, 216 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
deleted file mode 100644
index ce79b0d..0000000
--- a/_slides/2020-10-22-graphql-for-bffs-navigating-the-trade-offs.slides
+++ /dev/null
@@ -1,216 +0,0 @@
----
-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: [{{ 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