
Lee Danilek
All posts by Lee
Optimize Transaction Throughput: 3 Patterns for Scaling with Convex and ACID Databases
Explore techniques to improve transaction throughput and concurrency in ACID databases by reducing conflicts and optimizing database reads. This guide covers patterns like Queue, Hot and Cold Tables, and Predicate Locking with clear examples using Convex, providing developers with tools to handle high-throughput workflows effectively.

Lee Danilek
a month ago
Convex Cookbook: Dynamic Query Builders
You can write a Convex query whose structure -- which index/order/filters to apply, if any -- depends on runtime factors. This article gives a recipe for building queries dynamically.

Lee Danilek
a month ago
Database Triggers
Triggers automatically run code whenever data in a table changes. A library in the convex-helpers npm package allows you to attach trigger functions to your Convex database.

Lee Danilek
4 months ago
Take Control of Pagination
Convex offers robust control over pagination with a powerful function, getPage, enabling complex edge cases. In this article, we go over how to use that function in your Convex app.

Lee Danilek
7 months ago
Using TypeScript to Write Complex Query Filters
There’s a new Convex helper to perform generic TypeScript filters, with the same performance as built-in Convex filters, and unlimited potential.

Lee Danilek
a year ago
Row Level Security
Add row-level security to your database access by wrapping database reads and writes in your Convex serverless functions.

Lee Danilek
2 years ago
End-to-End Encryption with Convex
Implementing end-to-end encryption on top of Convex to build a secret-sharing app.

Lee Danilek
2 years ago