Episode 2 — React Frontend Architecture NextJS / 2.12 — Server State and API Integration
2.12.d — TanStack Query: smart caching, refetching, and useQuery
Learning outcomes
- Wrap the app in
QueryClientProviderwith a stableQueryClient. - Write correct query keys and tune
staleTime/gcTimeintentionally. - Use
useQueryfor reads with enabled flags and error boundaries where appropriate.
Setup
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
const queryClient = new QueryClient();
export function App() {
return (
<QueryClientProvider client={queryClient}>
<Router />
</QueryClientProvider>
);
}
useQuery basics
import { useQuery } from "@tanstack/react-query";
async function fetchPost(id: string) {
const res = await fetch(`/api/posts/${id}`);
if (!res.ok) throw new Error("Failed");
return res.json();
}
export function Post({ id }: { id: string }) {
const q = useQuery({ queryKey: ["post", id], queryFn: () => fetchPost(id) });
if (q.isPending) return "Loading…";
if (q.isError) return `Error: ${q.error.message}`;
return <h1>{q.data.title}</h1>;
}
Caching & refetching (mental model)
- staleTime: how long data is considered fresh enough not to refetch on mount by default behavior (tune per domain).
- gcTime (formerly cacheTime): how long inactive cache entries stay in memory after last observer unmounts.
Query keys
Treat keys like primary keys for client cache entries: include every input that logically changes the result (id, filters, locale).
Appendix — Scenario bank (basic → advanced)
Flashcard rhythm: symptom → cause → fix → phrase for interviews.
API3-001 — TanStack Query / useQuery #1
- Level: Beginner
- Symptom: stale UI or spinner stuck after
13ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-002 — TanStack Query / useQuery #2
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
26ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-003 — TanStack Query / useQuery #3
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
39ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-004 — TanStack Query / useQuery #4
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
52ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-005 — TanStack Query / useQuery #5
- Level: Advanced
- Symptom: stale UI or spinner stuck after
65ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-006 — TanStack Query / useQuery #6
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
78ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-007 — TanStack Query / useQuery #7
- Level: Beginner
- Symptom: stale UI or spinner stuck after
91ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-008 — TanStack Query / useQuery #8
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
104ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-009 — TanStack Query / useQuery #9
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
117ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-010 — TanStack Query / useQuery #10
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
130ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-011 — TanStack Query / useQuery #11
- Level: Advanced
- Symptom: stale UI or spinner stuck after
143ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-012 — TanStack Query / useQuery #12
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
156ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-013 — TanStack Query / useQuery #13
- Level: Beginner
- Symptom: stale UI or spinner stuck after
169ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-014 — TanStack Query / useQuery #14
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
182ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-015 — TanStack Query / useQuery #15
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
195ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-016 — TanStack Query / useQuery #16
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
8ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-017 — TanStack Query / useQuery #17
- Level: Advanced
- Symptom: stale UI or spinner stuck after
21ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-018 — TanStack Query / useQuery #18
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
34ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-019 — TanStack Query / useQuery #19
- Level: Beginner
- Symptom: stale UI or spinner stuck after
47ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-020 — TanStack Query / useQuery #20
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
60ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-021 — TanStack Query / useQuery #21
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
73ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-022 — TanStack Query / useQuery #22
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
86ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-023 — TanStack Query / useQuery #23
- Level: Advanced
- Symptom: stale UI or spinner stuck after
99ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-024 — TanStack Query / useQuery #24
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
112ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-025 — TanStack Query / useQuery #25
- Level: Beginner
- Symptom: stale UI or spinner stuck after
125ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-026 — TanStack Query / useQuery #26
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
138ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-027 — TanStack Query / useQuery #27
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
151ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-028 — TanStack Query / useQuery #28
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
164ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-029 — TanStack Query / useQuery #29
- Level: Advanced
- Symptom: stale UI or spinner stuck after
177ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-030 — TanStack Query / useQuery #30
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
190ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-031 — TanStack Query / useQuery #31
- Level: Beginner
- Symptom: stale UI or spinner stuck after
3ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-032 — TanStack Query / useQuery #32
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
16ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-033 — TanStack Query / useQuery #33
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
29ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-034 — TanStack Query / useQuery #34
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
42ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-035 — TanStack Query / useQuery #35
- Level: Advanced
- Symptom: stale UI or spinner stuck after
55ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-036 — TanStack Query / useQuery #36
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
68ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-037 — TanStack Query / useQuery #37
- Level: Beginner
- Symptom: stale UI or spinner stuck after
81ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-038 — TanStack Query / useQuery #38
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
94ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-039 — TanStack Query / useQuery #39
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
107ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-040 — TanStack Query / useQuery #40
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
120ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-041 — TanStack Query / useQuery #41
- Level: Advanced
- Symptom: stale UI or spinner stuck after
133ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-042 — TanStack Query / useQuery #42
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
146ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-043 — TanStack Query / useQuery #43
- Level: Beginner
- Symptom: stale UI or spinner stuck after
159ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-044 — TanStack Query / useQuery #44
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
172ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-045 — TanStack Query / useQuery #45
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
185ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-046 — TanStack Query / useQuery #46
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
198ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-047 — TanStack Query / useQuery #47
- Level: Advanced
- Symptom: stale UI or spinner stuck after
11ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-048 — TanStack Query / useQuery #48
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
24ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-049 — TanStack Query / useQuery #49
- Level: Beginner
- Symptom: stale UI or spinner stuck after
37ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-050 — TanStack Query / useQuery #50
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
50ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-051 — TanStack Query / useQuery #51
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
63ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-052 — TanStack Query / useQuery #52
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
76ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-053 — TanStack Query / useQuery #53
- Level: Advanced
- Symptom: stale UI or spinner stuck after
89ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-054 — TanStack Query / useQuery #54
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
102ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-055 — TanStack Query / useQuery #55
- Level: Beginner
- Symptom: stale UI or spinner stuck after
115ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-056 — TanStack Query / useQuery #56
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
128ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-057 — TanStack Query / useQuery #57
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
141ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-058 — TanStack Query / useQuery #58
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
154ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-059 — TanStack Query / useQuery #59
- Level: Advanced
- Symptom: stale UI or spinner stuck after
167ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-060 — TanStack Query / useQuery #60
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
180ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-061 — TanStack Query / useQuery #61
- Level: Beginner
- Symptom: stale UI or spinner stuck after
193ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-062 — TanStack Query / useQuery #62
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
6ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-063 — TanStack Query / useQuery #63
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
19ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-064 — TanStack Query / useQuery #64
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
32ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-065 — TanStack Query / useQuery #65
- Level: Advanced
- Symptom: stale UI or spinner stuck after
45ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-066 — TanStack Query / useQuery #66
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
58ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-067 — TanStack Query / useQuery #67
- Level: Beginner
- Symptom: stale UI or spinner stuck after
71ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-068 — TanStack Query / useQuery #68
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
84ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-069 — TanStack Query / useQuery #69
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
97ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-070 — TanStack Query / useQuery #70
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
110ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-071 — TanStack Query / useQuery #71
- Level: Advanced
- Symptom: stale UI or spinner stuck after
123ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-072 — TanStack Query / useQuery #72
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
136ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-073 — TanStack Query / useQuery #73
- Level: Beginner
- Symptom: stale UI or spinner stuck after
149ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-074 — TanStack Query / useQuery #74
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
162ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-075 — TanStack Query / useQuery #75
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
175ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-076 — TanStack Query / useQuery #76
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
188ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-077 — TanStack Query / useQuery #77
- Level: Advanced
- Symptom: stale UI or spinner stuck after
1ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-078 — TanStack Query / useQuery #78
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
14ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-079 — TanStack Query / useQuery #79
- Level: Beginner
- Symptom: stale UI or spinner stuck after
27ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-080 — TanStack Query / useQuery #80
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
40ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-081 — TanStack Query / useQuery #81
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
53ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-082 — TanStack Query / useQuery #82
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
66ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-083 — TanStack Query / useQuery #83
- Level: Advanced
- Symptom: stale UI or spinner stuck after
79ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-084 — TanStack Query / useQuery #84
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
92ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-085 — TanStack Query / useQuery #85
- Level: Beginner
- Symptom: stale UI or spinner stuck after
105ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-086 — TanStack Query / useQuery #86
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
118ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-087 — TanStack Query / useQuery #87
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
131ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-088 — TanStack Query / useQuery #88
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
144ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-089 — TanStack Query / useQuery #89
- Level: Advanced
- Symptom: stale UI or spinner stuck after
157ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-090 — TanStack Query / useQuery #90
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
170ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-091 — TanStack Query / useQuery #91
- Level: Beginner
- Symptom: stale UI or spinner stuck after
183ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-092 — TanStack Query / useQuery #92
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
196ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-093 — TanStack Query / useQuery #93
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
9ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-094 — TanStack Query / useQuery #94
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
22ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-095 — TanStack Query / useQuery #95
- Level: Advanced
- Symptom: stale UI or spinner stuck after
35ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-096 — TanStack Query / useQuery #96
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
48ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-097 — TanStack Query / useQuery #97
- Level: Beginner
- Symptom: stale UI or spinner stuck after
61ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-098 — TanStack Query / useQuery #98
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
74ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-099 — TanStack Query / useQuery #99
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
87ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-100 — TanStack Query / useQuery #100
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
100ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-101 — TanStack Query / useQuery #101
- Level: Advanced
- Symptom: stale UI or spinner stuck after
113ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-102 — TanStack Query / useQuery #102
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
126ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-103 — TanStack Query / useQuery #103
- Level: Beginner
- Symptom: stale UI or spinner stuck after
139ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-104 — TanStack Query / useQuery #104
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
152ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-105 — TanStack Query / useQuery #105
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
165ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-106 — TanStack Query / useQuery #106
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
178ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-107 — TanStack Query / useQuery #107
- Level: Advanced
- Symptom: stale UI or spinner stuck after
191ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-108 — TanStack Query / useQuery #108
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
4ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-109 — TanStack Query / useQuery #109
- Level: Beginner
- Symptom: stale UI or spinner stuck after
17ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-110 — TanStack Query / useQuery #110
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
30ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-111 — TanStack Query / useQuery #111
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
43ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-112 — TanStack Query / useQuery #112
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
56ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-113 — TanStack Query / useQuery #113
- Level: Advanced
- Symptom: stale UI or spinner stuck after
69ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-114 — TanStack Query / useQuery #114
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
82ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-115 — TanStack Query / useQuery #115
- Level: Beginner
- Symptom: stale UI or spinner stuck after
95ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-116 — TanStack Query / useQuery #116
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
108ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-117 — TanStack Query / useQuery #117
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
121ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-118 — TanStack Query / useQuery #118
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
134ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-119 — TanStack Query / useQuery #119
- Level: Advanced
- Symptom: stale UI or spinner stuck after
147ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-120 — TanStack Query / useQuery #120
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
160ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-121 — TanStack Query / useQuery #121
- Level: Beginner
- Symptom: stale UI or spinner stuck after
173ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-122 — TanStack Query / useQuery #122
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
186ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-123 — TanStack Query / useQuery #123
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
199ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-124 — TanStack Query / useQuery #124
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
12ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-125 — TanStack Query / useQuery #125
- Level: Advanced
- Symptom: stale UI or spinner stuck after
25ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-126 — TanStack Query / useQuery #126
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
38ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-127 — TanStack Query / useQuery #127
- Level: Beginner
- Symptom: stale UI or spinner stuck after
51ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-128 — TanStack Query / useQuery #128
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
64ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-129 — TanStack Query / useQuery #129
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
77ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-130 — TanStack Query / useQuery #130
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
90ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-131 — TanStack Query / useQuery #131
- Level: Advanced
- Symptom: stale UI or spinner stuck after
103ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-132 — TanStack Query / useQuery #132
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
116ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-133 — TanStack Query / useQuery #133
- Level: Beginner
- Symptom: stale UI or spinner stuck after
129ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-134 — TanStack Query / useQuery #134
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
142ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-135 — TanStack Query / useQuery #135
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
155ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-136 — TanStack Query / useQuery #136
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
168ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-137 — TanStack Query / useQuery #137
- Level: Advanced
- Symptom: stale UI or spinner stuck after
181ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-138 — TanStack Query / useQuery #138
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
194ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-139 — TanStack Query / useQuery #139
- Level: Beginner
- Symptom: stale UI or spinner stuck after
7ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-140 — TanStack Query / useQuery #140
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
20ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-141 — TanStack Query / useQuery #141
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
33ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-142 — TanStack Query / useQuery #142
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
46ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-143 — TanStack Query / useQuery #143
- Level: Advanced
- Symptom: stale UI or spinner stuck after
59ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-144 — TanStack Query / useQuery #144
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
72ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-145 — TanStack Query / useQuery #145
- Level: Beginner
- Symptom: stale UI or spinner stuck after
85ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-146 — TanStack Query / useQuery #146
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
98ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-147 — TanStack Query / useQuery #147
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
111ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-148 — TanStack Query / useQuery #148
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
124ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-149 — TanStack Query / useQuery #149
- Level: Advanced
- Symptom: stale UI or spinner stuck after
137ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-150 — TanStack Query / useQuery #150
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
150ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-151 — TanStack Query / useQuery #151
- Level: Beginner
- Symptom: stale UI or spinner stuck after
163ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-152 — TanStack Query / useQuery #152
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
176ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-153 — TanStack Query / useQuery #153
- Level: Intermediate
- Symptom: stale UI or spinner stuck after
189ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: enabled flag wrong causing fetch before auth token exists.
- Primary remediation: Gate with
enabled: !!tokenor route loader patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-154 — TanStack Query / useQuery #154
- Level: Intermediate+
- Symptom: stale UI or spinner stuck after
2ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: gcTime too low evicting cache users expect when navigating back.
- Primary remediation: Return primitives or memoize derived selections.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-155 — TanStack Query / useQuery #155
- Level: Advanced
- Symptom: stale UI or spinner stuck after
15ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: staleTime=0 everywhere causing refetch storms on focus.
- Primary remediation: Stagger prefetch or use HTTP caching headers in tandem.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-156 — TanStack Query / useQuery #156
- Level: Advanced+
- Symptom: stale UI or spinner stuck after
28ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Query keys omit parameters causing cache collisions between users or pages.
- Primary remediation: Keys are tuples including all logical inputs:
['user', id]patterns. - Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-157 — TanStack Query / useQuery #157
- Level: Beginner
- Symptom: stale UI or spinner stuck after
41ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: Prefetch without coordination duplicates thundering herd.
- Primary remediation: Tune staleTime per data volatility; measure refetch counts.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.
API3-158 — TanStack Query / useQuery #158
- Level: Beginner+
- Symptom: stale UI or spinner stuck after
54ms of navigation. - Integration smell: server errors surfaced as blank screen without recovery path.
- Root cause class: select returns unstable object defeating memoization.
- Primary remediation: Raise gcTime for list-detail navigation patterns when appropriate.
- Verify: Network tab + React Query Devtools (if used) + user retry path.
- Interview one-liner: Query keys are the database primary keys of your client cache.