   (reset! system (merge system-map
                         {:components (components-map system-map)})))
 
+(defn update-system-components!
+  [system])
 
 (defn with-component-dependencies
   "Runs the given function for all the dependencies of the given `component`

  PersistentArrayMap
  (start! [this context]
    (let [start-fn (::start-fn this)]
      (start-fn this context)))

  (stop! [this]
    (let [stop-fn (::stop-fn this)]

(def example-component
  {::depends-on [:sa]
   ::name :server
   ::start-fn (fn [this context] (println (str "<<<<" this)) this)
   ::stop-fn (fn [this] (println "stoping") this)})

(def example-component2
  {::name :sa
   ::start-fn (fn [this context] (println (str "<<sasasasa<<" this)) this)
   ::stop-fn (fn [this] (println "stoping") this)})

(def parsed-system
  {:components {:sa example-component2
                :server example-component}})
(def example-system
  {:components [example-component]})

