   "
   ([table-name fields]
   (pool/with-pool [conn pool/rethinkdb-pool]
-    (-> (r/table table-name)
-      (r/with-fields fields)
-      (r/run conn))))
+    (with-timeout default-timeout
+      (-> (r/table table-name)
+          (r/with-fields fields)
+          (r/run conn)))))
 
   ([table-name index-name index-value]
   (pool/with-pool [conn pool/rethinkdb-pool]
-    (-> (r/table table-name)
-      (r/get-all [index-value] {:index index-name})
-      (r/run conn))))
+    (with-timeout default-timeout
+      (-> (r/table table-name)
+          (r/get-all [index-value] {:index index-name})
+          (r/run conn)))))
 
   ([table-name index-name index-value fields]
   (pool/with-pool [conn pool/rethinkdb-pool]
-    (-> (r/table table-name)
-      (r/get-all [index-value] {:index index-name})
-      (r/pluck fields)
-      (r/run conn)))))
+    (with-timeout default-timeout
+      (-> (r/table table-name)
+          (r/get-all [index-value] {:index index-name})
+          (r/pluck fields)
+          (r/run conn))))))
 
 (defn update-resource
   "Given a table name, the name of the primary key, and the original and updated resource,

  "Resources are any thing stored in the open company platform: companies, reports"
  (:require [clojure.string :as string]
            [clojure.set :as cset]
            [schema.core :as s]
            [clojure.walk :refer (keywordize-keys)]
            [clj-time.format :as format]

          :created-at (:created-at original-resource)
          :updated-at timestamp})
        update (pool/with-pool [conn pool/rethinkdb-pool]
                 (with-timeout default-timeout
                   (-> (r/table table-name)
                       (r/get (original-resource primary-key-name))
                       (r/replace timed-resource)
                       (r/run conn))))]
  (if (or (= 1 (:replaced update)) (= 1 (:unchanged update)))
    timed-resource
    (throw (RuntimeException. (str "RethinkDB update failure: " update)))))))
