How DailyWatch Replaced 4 REST Calls with One GraphQL API to Cut Load Times
DailyWatch, a video platform, was making Android clients fire four separate HTTP requests per search screen, returning 41-column database rows when only 6 fields were needed, pushing load times to 2.4 seconds on 3G. To fix over-fetching, latency chaining, and cache fragmentation, the team built a read-only GraphQL sidecar using Strawberry and FastAPI, pointing it at the same SQLite file used by their existing PHP monolith. The sidecar runs as a separate process, meaning the main website continues serving HTML unaffected if the GraphQL layer fails. Key engineering challenges addressed included schema design against an FTS5 index, eliminating N+1 queries with DataLoader, enforcing cost limits, and making a POST-based protocol cacheable at the CDN edge. The approach reduced wire payload from roughly 180 KB to the ~20 KB actually needed to render the screen.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in