   ([id]
    (use-connection
      (with-context [instance-context]
-       (->> (es/document-by-id id))))))
+       (if cache-inst
+         (letfn [(sfn [data]
+                   (if-not (contains? data id)
+                     (assoc data id (es/document-by-id id))
+                     data))]
+           (swap! cache-inst sfn)
+           (get @cache-inst id))
+         (es/document-by-id id))))))
 
 (defn clear
   "Clear the in memory instance data.  If key `:wipe-persistent?` is `true` all

        call [[divide-by-preset]] for the first invocation of [[instances-load]]

  * **:url** the URL to the DB (defaults to `http://localhost:9200`)
  * **mapping-type** map type name (see ES docs)

Example
-------

  `(let [conn# (connection)
         ~'index-name (:index-name conn#)
         ~'ids-inst (:ids-inst conn#)
         ~'cache-inst (:cache-inst conn#)
         ~'instance-context (:instance-context conn#)
         ~'stats-context (:stats-context conn#)
         ~'population-use (:population-use conn#)
