def __init__(self, engine, txid, msg, callback=None, max_duration=5000, max_concurrency=3):
        self.engine = engine
        self.callback = callback
        self.machine = Machine(model=self,
                               states=self.states,
                               transitions=self.transitions,
                               initial='initialised')

        self.start = self.last_change = time.time() * 1000
        self.max_duration = max_duration
        self.max_concurrency = max_concurrency
        self.txid = txid
        self.times = {}
        self.parse_message(msg)
        self.query()