Getting used to deferred-style programming was not easy at first due to thinking in a multi-threaded style instead of an event-driven concept. On the other hand, many problems which seemed very complicated at first, could be solved quite easily with twisted.
There were also some misunderstandings in the namespace concept of python, especially with closure functions, which led to various bugs in the server. Moreover, unit testing the subscription architecture was quite complicated: After issuing multiple subscription requests, multiple SPRs had to be sent to the server in a non-blocking style. After that, certain OPC items were written which should be denoted by the concurrent SPRs.