Convex is in limited beta and is missing some features and guarantees required by larger mission-critical applications. It's a good candidate for prototyping, hobby projects, and smaller applications that are adequately served by our existing feature set.
Below are specific details about the limitations of the beta we plan on addressing very soon in 2022. Please contact us with any specific requirements or if you want to build a project on Convex that is not yet satisfied by our guarantees.
All user data in Convex is encrypted at rest. Database state is replicated durably across multiple physical availability zones. Regular periodic and incremental database backups are performed and stored with 99.999999999% (11 9's) durability.
We target an availability of 99.99% (4 9's) for Convex deployments although these may experience downtime for maintenance without notice. A physical outage may affect availability of a deployment but will not affect durability of the data stored in Convex. Convex doesn't currently provide any reliability or durability guarantees although we make a best effort to ensure the continued reliable operation of your deployments.
Convex does not yet have a pricing model and does not yet offer guarantees about future pricing. We intend to provide continual free service for small and hobbyist projects while charging for larger commercial projects.
The maximum record size is 1 MB. Convex also limits the size and nesting depth of the documents stored in the system as described in Convex Types.
We limit free deployments to 1,000,000 records and 500 MB. After this limit is hit, new mutations that attempt to commit more insertions or updates will fail.
The Convex dashboard is also currently limited to rendering only the 1,000 newest records.
Convex is under very active development and this section outlines some areas of currently missing functionality. We'd love to hear more about your requirements in the Convex Slack Community.
Schema Enforcement and Migrations
Currently Convex schemas are used to generate TypeScript types but we don't support enforcing the schema at runtime. We plan to add that in the future along with support for migrating data as your schema changes.
Convex currently doesn't have support for paginated database queries. We plan to release both features to manually paginate queries as well as React hooks to make it straightforward to build paginated views like infinite scroll.
Convex currently has an authentication framework which verifies user identities. In the future we plan to add an authorization framework which will allow developers to define what data a user can access.
For now, you can implement manual authorization checks within your queries and mutations, but stay tuned for a more comprehensive, fool-proof solution in the future.
Currently, the dashboard provides only basic metrics. Serious sites at scale are going to need to integrate our logs and metrics into more fully fledged observability systems that categorize them and empower things like alerting.
Convex will eventually have methods to publish deployment data in formats that can be ingested by third parties.
Convex is designed to primarily service all your app's OLTP (Online Transaction Processing) needs. It is less suited to be a good solution for the kinds of complex queries and huge table scans that are necessary to address the requirements of OLAP/Analytics use cases.
Eventually, Convex will expose its underlying log in an open format like Parquet or ORC to enable seamless interoperability with tools like Snowflake, BigQuery, and Athena.
Convex does not yet have an official browser support policy, but we strive to support most modern browsers with significant usage.
Convex has preliminary support for development on Windows. Some functionality may be is missing or broken. Please report issues at https://convex.dev/slack. If you hit problems, try the Windows Subsystem for Linux to access the full Convex CLI functionality.
Applications built on Convex will still run on Windows, assuming they are run in a supported browser.