docs: def gotMessage(self, message_id, message):
          """ Message comes in the data structure as:
              {
                  'method': 'some_method',
                  'args': ['list', 'of', 'args'],
                  'kwargs': {'key': 'value'}
              }
          """
          d = defer.maybeDeferred(self._handle_message, message)
          d.addCallback(self.generate_response)
          d.addCallback(lambda resp: self.reply(message_id, resp))
          return d