Convex's engineering blog explains its reactive backend and database, covering caching, embeddings, durable workflows and full-stack architecture.
Commenters link it to explain how Convex provides transactionally consistent subscriptions and default caching, treating those as useful simplifications for app development.
I played around with Convex and tried an integration with dbcrust, but it feels quite different from conventional databases. I really like the idea of moving business logic as close as possible to the database, but I can’t see a natural way to integrate it — it feels a bit forced. I read this article: https://stack.convex.dev/translate-sql-into-convex-queries , but it suggests that dbcrust would need to deploy tasks to a Convex instance. I’m not sure that’s the best approach, and I don’t see any clear alternative. I’d be very glad to hear any suggestions on this. I’d love to integrate Convex into dbcrust since convex is such a great product.
Solving the problem of having a transactionally consistent subscription on arbitrary data joins / fetches is hard, but it's so nice to have. If you haven't checked it out yet, Convex provides this out of the box. A blog post on how it works just landed today: https://stack.convex.dev/how-convex-works
There's no service, hosted or otherwise! It's a specification and open-source implementation for the data structure maintenance alone, and expects that users write their own backend as desired. https://stack.convex.dev/automerge-and-convex is a decent overview of many of the considerations.
Convex provides transactionally consistent subscriptions on arbitrary data joins/fetches out-of-the-box, simplifying complex data management challenges. Their recent blog post at https://stack.convex.dev/how-convex-works explains how this works under the hood.
This is a good deep dive into the complexity around caching: https://stack.convex.dev/caching-in
Having caching by default (like in Convex) is a really neat simplification to app development.