             [com.frereth.common.util :as util]
             [com.frereth.common.zmq-socket :as zmq-socket]
             [com.stuartsierra.component :as component]
+            [component-dsl.system :as cpt-dsl]
             [full.async :refer (<? <?? alts? go-try)]
             [hara.event :refer (raise)]
-            [schema.core :as s]
+            [schema.core :as s2]
             [taoensso.timbre :as log])
   (:import [com.frereth.common.async_component AsyncChannelComponent]
            [com.frereth.common.zmq_socket SocketDescription]

    (async/>!! status-chan status-out)
    (async/<!! status-out)))

(s/defn ctor-interface :- EventPairInterface
  [cfg]
  (map->EventPairInterface (select-keys cfg [:ex-sock :in-chan :external-reader :external-writer])))

(s/defn ctor :- EventPair
  [cfg]
  (map->EventPair (select-keys cfg [:_name])))


                (recur (async/alts!! [(async/timeout 100) in<->ex-chan]))))))
        @exited))))

(s2/defn possibly-forward-msg-from-outside!
  [{:keys [interface ex-chan _name]
    :as component} :- EventPair
   poller :- mq-cmn/Poller]
