                        (dom/th "Time")
                        (dom/th "fn")))
                    (dom/tbody ;{:height "500px" :position "absolute" :overflow-y "scroll"}
-                              (for [entry (reverse (sort-by :created-at entries))] 
-                                (dom/tr {:title (str (om/value entry))}
+                              (for [entry (take 100 (reverse (sort-by :message-id entries)))] 
+                                (dom/tr {:key (str "entry-" (:message-id entry))
+                                         :title (str (om/value entry))}
                                         (dom/td (str (:id (:args entry))))
                                         (dom/td (str (js/Date. (:created-at entry))))
                                         (dom/td (str (:fn entry))))))))))


(defcomponent job-info [{:keys [selected-job jobs]} owner]
  (render [_]
          ; Maybe only pass in job
          (let [job (jobs selected-job)] 
            (dom/div 
              (dom/div (str (om/value job)))
              (if-let [catalog (:catalog job)]
                (om/build catalog-view catalog {}))))))

(defn event-handler [{:keys [event]}]
  (let [[msg-type msg] event]


(defcomponent deployment-entries [{:keys [selected-job entries]} owner]
  (render [_]
          ;(println "ENTRY INFO:" (count (map :message-id entries))  (count (set (map :message-id entries))))
          (let [filtered-entries nil #_(filter (partial entry-for-job? selected-job) entries)] 
            (table {:striped? true :bordered? true :condensed? true :hover? true}
                   (dom/thead
                     (dom/tr
