Architecture
Choose one data owner
A table stays predictable when filtering, sorting, and pagination happen on the same side of the network boundary.
Client-owned data
Install data-table when the browser receives the complete dataset. TanStack can then filter, sort, facet, select, and paginate a coherent row model locally.
Server-owned data
Install data-table-server when rows are only one remote slice. Make filtering, sorting, and pagination manual together, pass an authoritative row count or cursor, and keep request cancellation, deduplication, caching, and authorization in the consumer.
Loaded but expensive to render
Add data-table-virtualized only after a loaded row model creates measurable DOM cost. Virtualization changes rendering, not who owns data processing, and it always consumes the final current table row model.