           retry-ch (chan (sliding-buffer (arg-or-default :onyx.messaging/retry-ch-buffer-size config)))
           acking-ch (:acking-ch (:acking-daemon component))
           send-idle-strategy (:send-idle-strategy messaging-group)
-          compress-f (:compress-f (:messaging-group peer-group))]
+          compress-f (:compress-f (:messaging-group peer-group))
+          multiplex-id (atom nil)]
       (assoc component 
              :messaging-group messaging-group
              :short-circuitable? short-circuitable?
              :publications publications
              :connections connections
+             :multiplex-id multiplex-id
              :virtual-peers virtual-peers
              :send-idle-strategy send-idle-strategy
              :compress-f compress-f


(defrecord AeronPeerConnection [channel id])

;;;; THIS CAN BE MADE FASTER BY NOT GOING THROUGH PEER-LINK IN OPERATION
(defmethod extensions/connect-to-peer AeronConnection
  [messenger peer-id event {:keys [aeron/external-addr aeron/port aeron/id]}]
  (->AeronPeerConnection (aeron-channel external-addr port) id))

(defn choose-id [used]
  (first (clojure.set/difference possible-ids used)))

(defmethod extensions/assign-site-resources :aeron
  [replica peer-site peer-sites]
  ;;; Assigns a unique id to each peer so that messages do not need
  ;;; to send the entire peer-id in a payload, saving 14 bytes per
  ;;; message
  (let [used-ids (->> (vals peer-sites) 
                      (filter 
                        (fn [s]
