Files
flyer-crawler.projectium.com/docs/adr/0005-frontend-state-management-and-server-cache-strategy.md
Torben Sorensen 8b06a66b17
Some checks failed
Deploy to Test Environment / deploy-to-test (push) Has been cancelled
testing ADR - architectural decisions
2025-12-12 00:01:35 -08:00

1.2 KiB

ADR-005: Frontend State Management and Server Cache Strategy

Date: 2025-12-12

Status: Proposed

Context

The frontend currently uses React's built-in hooks (useState, useEffect, useContext) for state management, as seen in useAuth.tsx. While effective for simple cases, this manual approach becomes complex and error-prone when fetching, caching, and synchronizing data with the server. It often leads to custom logic for loading states, errors, re-fetching, and optimistic updates.

Decision

We will adopt a dedicated library for managing server state, such as TanStack Query (formerly React Query) or SWR, for all server-side data fetching on the client. This will abstract away the complexities of caching, background re-validation, and request deduplication.

Consequences

  • Positive: Leads to a more performant, predictable, and simpler frontend codebase. Standardizes how the client-side communicates with the server and handles loading/error states. Improves user experience through intelligent caching.
  • Negative: Introduces a new frontend dependency. Requires a learning curve for developers unfamiliar with the library. Requires refactoring of existing data-fetching logic.