<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/tanstack-db-0-5-query-driven-sync-pkdc6uibb" -->

---
title: TanStack DB 0.5 . Query-Driven Sync | daily.dev
description: TanStack DB 0.5 introduces Query-Driven Sync, letting a component's live query act as the API call itself, without custom endpoints or GraphQL resolvers. The...
canonical: https://daily.dev/posts/tanstack-db-0-5-query-driven-sync-pkdc6uibb
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: TanStack DB 0.5 . Query-Driven Sync | daily.dev
og:description: TanStack DB 0.5 introduces Query-Driven Sync, letting a component's live query act as the API call itself, without custom endpoints or GraphQL resolvers. The...
og:url: https://daily.dev/posts/tanstack-db-0-5-query-driven-sync-pkdc6uibb
og:image: https://api.daily.dev/og/posts/PKDc6uiBB.png
og:image:alt: TanStack DB 0.5 . Query-Driven Sync
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# TanStack DB 0.5 . Query-Driven Sync

**[TanStack](https://daily.dev/sources/tanstack-blog)** · 10 min read · 0 upvotes · 0 comments

## Summary

TanStack DB 0.5 introduces Query-Driven Sync, letting a component's live query act as the API call itself, without custom endpoints or GraphQL resolvers. The release adds three sync modes: eager (load everything upfront, the only mode before 0.5), on-demand (fetch only what queries request, ideal for large datasets), and progressive (load a subset instantly then sync the full dataset in background, best for sync engines like Electric, Trailbase, and PowerSync). TanStack DB deduplicates identical queries into single network calls, fetches only deltas on pagination, and batches join-related requests instead of causing N+1 explosions. It integrates with TanStack Query's staleTime/gcTime caching. The team is targeting a 1.0 release for December 2025 focused on API stability and documentation, and is asking for early adopter feedback via Discord and GitHub.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://tanstack.com/blog/tanstack-db-0.5-query-driven-sync>

## Questions this post answers

### What is query-driven sync in TanStack DB 0.5?

Query-driven sync is a feature in TanStack DB 0.5 that turns a component's live query into the actual API call, automatically generating precise REST, GraphQL, or tRPC requests based on the query's filters, joins, and limits. It eliminates the need for custom endpoints or GraphQL resolvers per view, since collections define schema and security while live queries define what data loads.

_Developers wiring up data fetching for React apps can track library releases like this one on daily.dev._

### What are the three sync modes available in TanStack DB 0.5 and when should I use each?

TanStack DB 0.5 offers eager mode (loads the entire collection upfront, best for under 10k rows of mostly static data), on-demand mode (loads only what queries request, best for datasets over 50k rows, search interfaces, and catalogs), and progressive mode (loads the queried subset immediately then syncs the full dataset in the background, ideal for collaborative apps needing instant first paint plus sub-millisecond queries).

_Teams deciding how to structure data loading for large datasets can follow deep dives like this on daily.dev._

### How does TanStack DB avoid N+1 query problems when using on-demand sync mode?

TanStack DB deduplicates identical live queries across components into a single network request, fetches only the delta window when paginating instead of reloading everything, and analyzes joins to batch related records into one filtered request rather than issuing one request per row. For example, joining todos with projects triggers just two calls: one for active todos and one batched call for the unique project IDs involved.

_Developers optimizing data-fetching patterns can keep up with tools like TanStack DB on daily.dev._

## Similar posts on daily.dev

- [Tanstack DB 0.5 Query-Driven Sync: Loading data will never be the same](https://daily.dev/posts/tanstack-db-0-5-query-driven-sync-loading-data-will-never-be-the-same-at4hfmafb) · LogRocket · 31 upvotes · 0 comments
- [TanStack dominance intensifies](https://daily.dev/posts/tanstack-dominance-intensifies-raf2r08in) · Bytes by ui.dev · 16 upvotes · 3 comments
- [Intro to TanStack DB: Reactive Data Layer for Modern Web Apps](https://daily.dev/posts/intro-to-tanstack-db-reactive-data-layer-for-modern-web-apps-kdplkf2xf) · Telerik · 4 upvotes · 0 comments
- [A gentle introduction to TanStack Query](https://daily.dev/posts/a-gentle-introduction-to-tanstack-query-e5yjmxkk9) · Neciu Dan · 79 upvotes · 5 comments

---

Tags: [#react](https://daily.dev/tags/react), [#graphql](https://daily.dev/tags/graphql)

[View this post on daily.dev](https://daily.dev/posts/tanstack-db-0-5-query-driven-sync-pkdc6uibb)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"TanStack DB 0.5 . Query-Driven Sync","url":"https://daily.dev/posts/tanstack-db-0-5-query-driven-sync-pkdc6uibb","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/tanstack-db-0-5-query-driven-sync-pkdc6uibb"},"datePublished":"2026-08-23T12:21:00.343Z","dateModified":"2026-08-23T12:46:18.043Z","description":"TanStack DB 0.5 introduces Query-Driven Sync, letting a component's live query act as the API call itself, without custom endpoints or GraphQL resolvers. The...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ddd6df55471e09d4ba13bc3e407ec85e?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ddd6df55471e09d4ba13bc3e407ec85e?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"TanStack","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"TanStack","logo":"https://media.daily.dev/image/upload/s--TVIrvIT7--/f_auto,q_auto/v1787487634/logos/tanstack-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/tanstack-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/tanstack-db-0-5-query-driven-sync-pkdc6uibb","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"react,graphql","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"TanStack","item":"https://daily.dev/sources/tanstack-blog"},{"@type":"ListItem","position":3,"name":"TanStack DB 0.5 . Query-Driven Sync"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/tanstack-db-0-5-query-driven-sync-pkdc6uibb#faq","mainEntity":[{"@type":"Question","name":"What is query-driven sync in TanStack DB 0.5?","acceptedAnswer":{"@type":"Answer","text":"Query-driven sync is a feature in TanStack DB 0.5 that turns a component's live query into the actual API call, automatically generating precise REST, GraphQL, or tRPC requests based on the query's filters, joins, and limits. It eliminates the need for custom endpoints or GraphQL resolvers per view, since collections define schema and security while live queries define what data loads. Developers wiring up data fetching for React apps can track library releases like this one on daily.dev."}},{"@type":"Question","name":"What are the three sync modes available in TanStack DB 0.5 and when should I use each?","acceptedAnswer":{"@type":"Answer","text":"TanStack DB 0.5 offers eager mode (loads the entire collection upfront, best for under 10k rows of mostly static data), on-demand mode (loads only what queries request, best for datasets over 50k rows, search interfaces, and catalogs), and progressive mode (loads the queried subset immediately then syncs the full dataset in the background, ideal for collaborative apps needing instant first paint plus sub-millisecond queries). Teams deciding how to structure data loading for large datasets can follow deep dives like this on daily.dev."}},{"@type":"Question","name":"How does TanStack DB avoid N+1 query problems when using on-demand sync mode?","acceptedAnswer":{"@type":"Answer","text":"TanStack DB deduplicates identical live queries across components into a single network request, fetches only the delta window when paginating instead of reloading everything, and analyzes joins to batch related records into one filtered request rather than issuing one request per row. For example, joining todos with projects triggers just two calls: one for active todos and one batched call for the unique project IDs involved. Developers optimizing data-fetching patterns can keep up with tools like TanStack DB on daily.dev."}}]}
```

