Skip to content

Concerns About Bandwidth Usage, Caching, and Scalability Limits in Convex #95

Open
@franckdsf

Description

@franckdsf

Hi Convex team,

I've been migrating my app to Convex for about a month now. While it's still not in production, I've already hit the 1 GB database bandwidth threshold, which is quite concerning.

It's a web-based AI application that launches tasks to generate content. Convex has been helpful in eliminating the need for a traditional polling system to retrieve that content in real time.

Here’s some context:

  • My database is only 5 MB
  • My writes are only 6 MB
  • But my reads are at 900 MB

Image

Despite optimizing my queries to fetch only necessary data, caching does not seem to work as expected:

  • When I refresh the browser, every 1 out of 2 tries does not hit the cache.
  • Paginated queries never seem to use the cache, neither on the backend nor on the frontend — and there is currently no Convex helper for paginated caching.

This raises questions about the practicality of caching in real-world apps.

For comparison, my existing Supabase setup (with ~500 users averaging 25-minute sessions) handles:

  • 200 MB database
  • ~3 GB monthly egress

With Convex, based on my current trajectory, this could scale to over 600 GB/month, which is extremely high and unsustainable.

Additional Concerns

  • I'm using convex-auth, and in just one month on a single account, it generated over 2,000 authRefreshTokens. At scale, this would be over 1 million refresh tokens for 500 users, which seems highly inefficient.

  • When listing elements with query or paginationQuery, any update to a single element triggers a full re-send of the entire list, instead of just the updated row. This results in megabytes of bandwidth used, rather than just a few kilobytes.

Feedback & Request

  • The current documentation and tutorials don’t provide clear guidance on building scalable, production-ready data fetching and caching strategies in Convex.

  • We'd really benefit from official best practices for:

    • Efficient pagination with real-time updates.
    • Reducing redundant data transmission when listing or updating items.
    • Managing authRefreshTokens efficiently at scale.
    • Monitoring and optimizing bandwidth usage, especially in real-time applications.
  • Additionally, the Logs tab in the dashboard needs to offer more transparency and debugging insight. Specifically, it would be extremely helpful to see:

    • Query parameters sent
    • Returned result data
    • Size of the result
    • Any internal database bandwidth used (if it contributes to the usage limits)

I'm genuinely excited about Convex, but these issues could be blockers for production use. I hope you can shed some light on whether improvements are planned around these limitations, and if not, how developers should handle them effectively.

Thanks for your work and looking forward to your response!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions