               [clj-tuple :as t]
               [onyx.interop]
               [onyx.state.log.atom]
+              [onyx.state.log.bookkeeper]
               [onyx.state.core :as state]
               [onyx.state.state-extensions :as state-extensions]
               [onyx.static.default-vals :refer [defaults arg-or-default]]))

        (throw (ex-info "Failed to resolve or build plugin on the classpath, did you require/import the file that contains this plugin?" {:symbol kw :exception e}))))))


(def test-full-log 
  (into {} 
        (map (fn [id]
               [id (atom [])]) 
             (range 20))))

(defn resolve-log [pipeline]
  (assoc pipeline :onyx.core/state-log (state-extensions/initialise-log :atom pipeline)))

(defrecord TaskLifeCycle
    [id log messenger-buffer messenger job-id task-id replica peer-replica-view restart-ch

                           :onyx.core/monitoring monitoring
                           :onyx.core/outbox-ch outbox-ch
                           :onyx.core/seal-ch seal-resp-ch
                           :onyx.core/task-kill-ch task-kill-ch
                           :onyx.core/kill-ch kill-ch
                           :onyx.core/peer-opts opts
                           :onyx.core/fn (operation/resolve-task-fn catalog-entry)
                           :onyx.core/replica replica
                           :onyx.core/peer-replica-view peer-replica-view
                           :onyx.core/state state
                           :onyx.core/test-entries-log test-entries-log
                           :onyx.core/window-state (atom {})}

            pipeline (build-pipeline catalog-entry pipeline-data)
