Skip to main content
checklist

Review Packet: Rendering and Data Architecture

When to use​

Use this packet for route rendering decisions, server/client boundary changes, cache strategy, route loaders, BFF/API contracts, Suspense/streaming plans, offline behavior, and mutation consistency decisions.

Intake questions​

  • Which user journey and routes are affected?
  • What must be visible on first paint?
  • What must be interactive immediately?
  • Which data must be fresh, eventually fresh, or user-refreshed?
  • Which parts are public, authenticated, personalized, or tenant-specific?
  • What work is done at build time, edge, origin, and client?
  • What happens when a request is slow, stale, duplicated, or fails?

Required artifacts​

  • Route rendering matrix.
  • Data ownership map.
  • Cache and invalidation policy.
  • Mutation lifecycle and rollback behavior.
  • Loading/error/empty/degraded state designs.
  • Performance budget for affected routes.

Decision matrix​

SignalPrefer static/cacheablePrefer server request timePrefer client runtime
FreshnessContent changes slowly.User or request context matters.User interaction drives freshness.
SEOPublic and indexable.Public but personalized by request.Private or not discoverable.
InteractivityMostly read-only.Interactive islands.Continuous stateful interaction.
CostCheap to precompute.Server can orchestrate efficiently.Client responsiveness dominates.

Red flags​

  • One rendering mode is chosen for the entire application.
  • Client state stores server-owned data without invalidation rules.
  • URL state, form state, server state, and UI state are mixed together.
  • Hydration cost is ignored because SSR is present.
  • Cache invalidation is described as "we will clear it when needed."

Approval criteria​

  • Route-level rendering decisions are explicit.
  • Cache keys and invalidation triggers are documented.
  • Critical loading and error states are designed.
  • Mutation consistency and rollback behavior are specified.
  • Metrics exist to detect regressions.

Example reviewer comments​

  • "This route has personalized data but the cache key does not include tenant or role. Please document how cross-user leakage is prevented."
  • "The dashboard shell can render before all panels resolve. Please split the all-or-nothing data dependency."
  • "This optimistic update needs a conflict path when the server rejects the mutation."

Example ADR prompt​

Write an ADR explaining the selected rendering model per route, freshness requirements, cache ownership, invalidation triggers, hydration cost, and fallback behavior.

Release readiness checklist​

  • Route rendering matrix reviewed.
  • Cache policy tested with user, tenant, locale, and experiment variation.
  • Mutation failures produce recoverable UI.
  • Web Vitals and route errors are observable after release.
  • Rollback path is documented.