   (if ((:short-circuitable? messenger) channel) 
     (retry-message-short-circuit (short-circuit-ch messenger peer-id :retry-ch) id)
     (let [idle-strategy (:send-idle-strategy messenger)
-          pub ^uk.co.real_logic.aeron.Publication (get-publication messenger channel)
+          pub ^Publication (get-publication messenger channel)
           unsafe-buffer (protocol/build-retry-msg-buf peer-id id)
           offer-f (fn [] (.offer pub unsafe-buffer 0 protocol/retry-msg-length))]
       (while (neg? ^long (offer-f))

  (if ((:short-circuitable? messenger) channel) 
    (complete-message-short-circuit (short-circuit-ch messenger peer-id :release-ch) id)
    (let [idle-strategy (:send-idle-strategy messenger)
          pub ^uk.co.real_logic.aeron.Publication (get-publication messenger channel)
          unsafe-buffer (protocol/build-completion-msg-buf peer-id id)
          offer-f (fn [] (.offer pub unsafe-buffer 0 protocol/completion-msg-length))]
      (while (neg? ^long (offer-f))

        (let [fragments-read (.poll ^uk.co.real_logic.aeron.Subscription subscription ^FragmentHandler handler ^int limit)]
          (.idle idle-strategy fragments-read))))))

(defn handle-message [decompress-f virtual-peers buffer offset length header]
  (let [msg-type (protocol/read-message-type buffer offset)
        offset-rest (inc ^long offset)] 
