I hope this is the right mailing list to post this question to.
I'm trying to build an Twisted application that uses ZODB and I've
also found zc.twist.
I've read its README as well as the source code to try to understand
how exactly and why I should use zc.twist, and also asked the same
questions on irc.freenode.net #zope but without a conclusive answer.
What I'm not able to understand is whether using zc.twist will allow
me to do all ZODB access in the main Twisted thread, or if still need
to set up a thread pool and deferToThread any code that accesses the
The README of zc.twist has:
"Everything can be done within the main thread, so it can be full-bore
Twisted usage, without threads."
However, looking at the source code of zc.twist, I cannot find any
reference to async communication (callbacks/polling) with ZODB, so
it's difficult to conclude that all DB access is non-blocking and can
be done in a single thread. Also, there are some examples with threads
in the README.
I would highly appreciate if somebody with a clearer understanding of
this could explain to me whether I in fact need to set up a thread
pool, and in any case, what exactly is zc.twist for regardless of
whether it needs to be used with a threadpool or not.
Thanks in advance!
P.S. I'd be very thankful for any references to open source
projects/code using ZODB with Twisted, or even zc.twist (besides
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org