Hey HN,
I've been writing webapps in Python for 6 years and have been using SQLAlchemy as my ORM for about that same time. As I've recently scaled more products with this stack a few things occurred to me:
- It takes really careful session management to avoid idle-in-transaction hanging in the database because objects are still floating around (see: PEP 249 and its prioritization “implicit begin” and “explicit commit”)
- Not once have we switched backend databases, we've always stuck with Postgres
While it was baking hot in San Francisco a few weekends ago I took a step back to write a ground-up Postgres ORM with modern syntax. It main focuses are typehinted schemas, async support, integrated database migrations, and explicit transaction management. You can certainly do all this with existing solutions but my hope is by making them first class primitives it's easier to write correct and performant database code.
Give it a try - would love to hear what you think!
(More documentation is also at https://mountaineer.sh/iceaxe/guides/quickstart)