Hacker News new | ask | show | jobs
by nuc1e0n 1308 days ago
Much of the third world has very limited data thoughput or even much client side processing capability on their phones. "Not understanding" graphql is irrelevant. The key is to make as few requests and bytes transfered as possible. It seems the twitter mobile app hasn't been optimised for that, no matter what protocol it uses.
2 comments

I see entire massive threads requested and responded in a single compressed call to /api/graphql/xxx/TweetDetail

Loading an entire next page is also a single call to the same endpoint. There is nowhere remotely that I see the mobile client even making a hundred gql calls for tweets.

Is there something I'm missing or is he misusing "app" when he means backend service to service GQL calls?

Would the UX concept of a 'next page' even make sense if the content doesn't get read by the end user? What would an app that's mindful of the unavoidable technical limitations look like I wonder? I'm not familiar with the specifics at hand or what Musk can see, but from my perspective he has first hand knowledge of web dev and is smart enough to not be blinded by buzzwords and dogma. He seems to have earned a decent living from his approach don't you think?
If there's a problem sending too much data between back end services, perhaps there's just more data being sent than necessary. Perhaps there's some data usage costs or introduced latencies involved somehow?
If Twitter is using RPCs is for internal communication (i.e., among microservices), so how on earth would it make a difference depending on the country? Elon doesn't know what he's talking about.
I tried my best to fill in the blanks for this story, and my working understanding is this:

1) Client requests service. 2) Service is graphQL, which makes the "thousands of calls" Musk is referring to towards other backend APIs. 3) There was an incorrect international cache/CDN configuration which hurt response time of these APIs for some countries. 4) Musk claims its the API calls causing slow performance, engineers point out that its technically the cache.

Debate is about if using graphQL is even worth it if it needs such complex caching to work well

Perhaps local backbone telecoms correspondingly differ in capabilities from one locale to another?