Developing good ORMs is HARD!

Опубликовано: 23 Февраль 2026
на канале: PyCon South Africa
1,214
27

Nickolas Grigoriadis

https://2018.za.pycon.org/talks/24-de...

As with many people, I was looking for an ORM for `asyncio` Python.

Whilst `asyncio` is a great framework for I/O bound applications, there isn't any mature, recommendable ORMs for it.
Many attempts to wrap an existing sync Python ORM (such as peewee or sqlAlchemy) by having them run in a separate thread, and then dealing with synchronising between the event loop and threads got abandoned, due to a myriad of problems, including performance, correctness and blocking.
Other ORMs were abandoned before they worked, or had so many layers of abstraction that I feared to touch it.

Then I came across [Tortoise ORM](http://tortoise-orm.readthedocs.io/)
It had a simple design. (Inspired by the Django ORM syntax)
It actually worked when I tried it out.

So I decided to jump in, and help with development.

In this talk I'll talk about my experience of being on a development team on an ORM.
There is a reason there are so few successful ORM projects out there.

Developing good ORMs are *HARD*

pyconza2018

python