Hello,
I'm attempting to set up a python avro endpoint using twisted and am a bit
confused. I've been using the code in txipc.py and the associated test code
(
https://github.com/apache/avro/blob/trunk/lang/py/test/txsample_http_server.pyfrom
https://issues.apache.org/jira/browse/AVRO-528) as a reference.

Basically, I am using avro to wrap calls to our cassandra persistence
layer. I was able to set up a naive blocking implementation by mimicking
the test server and using pycassa, a blocking cassandra library. However,
when attempting to switch to telephus, a nonblocking cassandra client, I
ran into problems. In particular, the txipc server code doesn't seem to
support twisted Deferred objects deeper than surface level. That is,
txipc.AvroResponderResource wraps an ipc.Responder, which understandably
has no support for Deferred return values.

So I guess my questions are: am I understanding things correctly? And if
so, what would be the best way to add end-to-end nonblocking support to the
existing avro implementation? For instance, would it make sense to
implement a twisted-specific Responder that supports invoke() calls which
may return Deferred objects? I've only been mucking about in this code for
a couple days, so not sure if I am missing something :)

Thanks!

Reply via email to