code: def timed_request(self, subject, payload, timeout=0.5):
          
          next_inbox = INBOX_PREFIX[:]
          next_inbox.extend(self._nuid.next())
          inbox = str(next_inbox)
          future = tornado.concurrent.Future()
          sid = yield self.subscribe(
              subject=inbox, queue=_EMPTY_, cb=None, future=future, max_msgs=1)
          yield self.auto_unsubscribe(sid, 1)
          yield self.publish_request(subject, inbox, payload)
          msg = yield tornado.gen.with_timeout(
              timedelta(seconds=timeout), future)
          raise tornado.gen.Return(msg)
docs: Implements the request/response pattern via pub/sub
          using an ephemeral subscription which will be published
          with a limited interest of 1 reply returning the response
          or raising a Timeout error.
  
            ->> SUB _INBOX.E9jM2HTirMXDMXPROSQmSd 90
            ->> UNSUB 90 1
            ->> PUB hello _INBOX.E9jM2HTirMXDMXPROSQmSd 5
            ->> MSG_PAYLOAD: world
            <<- MSG hello 2 _INBOX.E9jM2HTirMXDMXPROSQmSd 5