This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-03-17
Channels
- # announcements (6)
- # babashka (2)
- # babashka-sci-dev (1)
- # beginners (74)
- # calva (3)
- # cider (33)
- # clj-kondo (19)
- # cljsrn (10)
- # clojure (75)
- # clojure-dev (11)
- # clojure-europe (39)
- # clojure-italy (1)
- # clojure-nl (1)
- # clojure-spec (4)
- # clojure-uk (6)
- # clojurescript (139)
- # code-reviews (8)
- # core-typed (7)
- # data-science (1)
- # docs (2)
- # emacs (11)
- # events (1)
- # introduce-yourself (8)
- # lsp (4)
- # malli (10)
- # off-topic (15)
- # pedestal (5)
- # podcasts (4)
- # polylith (18)
- # re-frame (6)
- # react (1)
- # reagent (18)
- # reitit (6)
- # releases (2)
- # rewrite-clj (1)
- # spacemacs (15)
- # sql (2)
- # vscode (5)
@borkdude I can see a couple different implementation options here and I'm curious if you have a preference:
1. Load & cache pod metadata (i.e. :describe
response) at install time and then at the first require, do roughly the same load-pod
process, sans :describe
2. Load & cache pod metadata at install time but also do all of the load-pod
process (i.e. register the namespaces, put the pod-id into the pods
atom, etc.) except shut down the pod process after :describe
and don't kick off the bb.impl.processor
future until the first invoke (when we would also start a new pod process).
No. 1 is what we discussed previously, but I could see no. 2 being faster b/c it does more at install / cache-restore time (though it moves its smaller perf penalty from require
to first invoke
) and providing useful building blocks in the future like giving you the ability to shut down idle pods after a timeout, etc.