             backed-by))
 
 (defmethod duragent :local-file
-  [_ & {:keys [file-path init rw]
+  [_ & {:keys [file-path init rw meta]
         :or {rw default-file-rw}}]
   (let [make-backend (partial storage/->FileBackend
                               (doto (jio/file file-path)
                                 (.createNewFile))
                               (:read rw)
                               (:write rw))]
-    (duragent* init (:error-handler rw) make-backend)))
+    (duragent* init meta (:error-handler rw) make-backend)))
 
 (defmethod duragent :postgres-db
-  [_ & {:keys [db-config table-name row-id init lock rw]
+  [_ & {:keys [db-config table-name row-id init lock rw meta]
         :or {lock (ReentrantLock.)
              rw default-postgres-rw}}]
   (let [make-backend (partial storage/->PGSQLBackend

                                              {:type ::storage/commit-error}
                                              e))))))
                          (doto
                            (reset-meta! {::storage/destroy  (partial storage/safe-cleanup! backend release cleanup-lock)
                                          ::storage/snapshot #(storage/snapshot backend)})
                            (set-error-handler!
                              (if (nil? ehandler)
                                ut/noop

                                    (ehandler a e))))))))]
    (if (some? storage-init)
      ;; found stuff - sync it before adding the commit watch
      (send-off ag (fn [& _]
                     (deliver safe-to-add-watch? true)
                     storage-init))
      ;; empty storage - trigger first commit
      (do (deliver safe-to-add-watch? true)
          (send-off @final-agent (constantly (ut/->init init)))))
    (and @safe-to-add-watch?
         @final-agent)))

(defmulti duragent
          "duragent is to agent, what duratom is to atom"
