From prototype to production, Convex provides a flexible, 100% ACID compliant database.
Every project and company eventually needs true ACID transactions; Convex is designed for it out of the gate. All data in Convex is always written and read in transactions. Your data will always behave as you expect. No complicated rules around reading all your data before writing. All Convex transactions work on top of a consistent snapshot.
Convex goes above and beyond typical ACID compliance with serializable isolation and optimistic concurrency control. Write your app’s logic in TypeScript query and mutation functions and Convex takes care of the rest.
A hierarchical document database without relationships is not enough. Convex encourages you to organize your documents in tables. So if your
todos are in different tables, you can set clear relationships between them using standard relational patterns. Convex is still flexible enough to documents in semi-structured JSON files.
The Convex database was designed with the query and mutation functions in mind. So every time you write a query or mutation function, it’s automatically a transaction. All transactions are automatically retried if they conflict. You are free to just write the code you care about, not trying to figure out to how manage consistency.