Using Trio in production

Hi everybody,

I have started a small research concerning asyncio frameworks, trying to find something that could help us write more robust code than e.g. using twisted, which we have used in some of our apps before. From my point of view, twisted code tends to be very hard to read because of all the callbacks flying around, and error handling is hard to get right, as you can easily miss some exceptions that bubble up to the reactor loop.

As I had heard of asyncio, which has found its way into the python standard library, I was curious how this compares; but reading some tutorials I was not so happy when I discovered that the error handling problem is still unsolved.

I am very impressed after reading some documentation, that trio has found an elegant way to overcome these fundamental shortcomings. Now I am wondering if it is an option for us, to use trio in production code. My company offers products with a very long lifespan (>10 years) and it is fundamental for us, that we can keep everything up-to-date during this time.

Can anyone comment upon long-term availability of trio and the stability of trio’s basic API? Might trio be already in use of some of the major organizations yet, which might guarantee some long-term perspective?

we’re using Trio in production for about 18 months now (running within consumer electronics product)

the Trio implementation is stable and high quality

the API is very much subject to change - Backwards-incompatible changes - SUBSCRIBE TO THIS THREAD if you use trio! · Issue #1 · python-trio/trio · GitHub

I’m not sure how realistic it is to plan 10 years out, since you’re at the mercy of every transient dependency of the app properly supporting a very future Python. And it’s anyone’s guess how async in Python will play out during that time (asyncio vs. trio vs. anyio, etc.).

If we didn’t use Trio, our product and development would be in much worse shape. I wouldn’t trade that for API stability.