5. SWOT for GraphQL
Strengths are internal,
positive attributes of
your company. These
are things that are
within your control.
Strength
Weaknesses are
negative factors that
detract from your
strengths. These are
things that you might
need to improve on to
be competitive.
Weakness
Opportunities are
external factors in your
business environment
that are likely to
contribute to your
success.
Opportunity
Threats are external
factors that you have
no control over. You
may want to consider
putting in place
contingency plans for
dealing them if they
occur.
Threat
8. Empower the client/frontend
Contract between frontend and backend
Client will define shape of data rather than
backend
High developer velocity
Data-driven development helps to speed up
frontend development significantly
Optimized fetching
Reduce network round-trips
Reduce payload size
Strength
10. High learning curve
Can be overwhelming to get started as a new
technology
N+1
Overzealous database calls and waste of
resources with duplicate requests
Caching
Challenging to achieve on the gateway level due
to complexity and variety of client requests
Weakness
12. Missing eco-system
GraphQL great for internal development but not
as public API just yet
Ethical implications
Consider the effect of picking GraphQL and a
vendor
Vendor-lock in
Hard to combine or have GraphQL vendors to
interact - danger of locked-in
Threats
14. Type-Safety
GraphQL Schema as universal type definition in
client and server side
Growing community
Getting larger by the day
Great developer experience
Fantastic experience especially for frontend
developers
Opportunity
16. End-To-End Testing
Full end-to-end testing using benefits of frontend - backend
contract - refer to the talk of Robert Dickert:
https://www.youtube.com/watch?v=3Bpdh5j05r8
Testing
23. Beyond tracing time
Complexity Payload size Query history
Public facing APIs could charge customers by actual usage based on complexity of a GraphQL query rather than charging by no. of API calls
Fine-grained tracing also enables highly personalized results or usage profiles by user
24. Auto-
Indexing
Adjust to the
client needs and
preferences
Knowing request patterns and tracing down to the field
level you are able to index and adjust usage down to the
data layer.