Recently I wrote a Twisted-based chat bot that can interact with a Koji hub.
To do this, I wrote a "txkoji" client library:
(the bot code is separate, this is just the koji client library)
txkoji allows me to interact with a Koji Hub in an event-driven way,
without blocking the reactor for my program. This works well for
client programs that must be responsive to input from several sources
(like IRC and a message bus and many other inputs). I return the
XML-RPC responses as Munch (dict-like) objects because I ran across
Munch in a couple other Fedora infra projects and I like the syntax.
If Koji gets a REST API, I could convert this to use treq instead of
Twisted's XML-RPC client.