             [com.stuartsierra.component :as component]
             [clj-http.client :refer [post]]
             [taoensso.timbre :refer [info]]
-            [onyx.system :as system]))
+            [onyx.coordinator.impl :as impl]
+            [onyx.system :as system]
+            [onyx.extensions :as extensions]))
 
 (defprotocol ISubmit
   "Protocol for sending a job to the coordinator for execution."

   Registering allows the virtual peer to accept tasks."
  (register-peer [this peer-node]))

(defprotocol IShutdown
  "Protocol for stopping a virtual peer's task and no longer allowing
   it to accept new tasks. Releases all resources that were previously
   acquired."
  (shutdown [this]))

;; A coordinator that runs strictly in memory. Peers communicate with
;; the coordinator by directly accessing its channels.

  IShutdown
  (shutdown [this] (component/stop onyx-coord)))

;; A coordinator runs remotely. Peers communicate with the
;; coordinator by submitting HTTP requests and parsing the responses.
(deftype HttpCoordinator [uri]
  ISubmit
