This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-07-25
Channels
- # aleph (2)
- # aws (2)
- # beginners (37)
- # boot (23)
- # cider (29)
- # clara (34)
- # cljs-dev (2)
- # cljsrn (17)
- # clojure (230)
- # clojure-dev (47)
- # clojure-italy (11)
- # clojure-nl (2)
- # clojure-poland (5)
- # clojure-russia (52)
- # clojure-sg (1)
- # clojure-spec (70)
- # clojure-uk (73)
- # clojurescript (31)
- # core-async (9)
- # cursive (15)
- # datomic (39)
- # events (1)
- # graphql (1)
- # lein-figwheel (2)
- # luminus (13)
- # off-topic (2)
- # onyx (29)
- # other-lisps (1)
- # parinfer (15)
- # pedestal (14)
- # re-frame (41)
- # reagent (24)
- # ring (4)
- # ring-swagger (12)
- # rum (1)
- # spacemacs (3)
- # specter (1)
- # test-check (13)
- # timbre (9)
- # unrepl (29)
- # vim (5)
I don't get the AWS Lambda idea ... doesn't Lambda start up a new container for each request? Or run a new command for each? Isn't that the worst possible thing with Clojure for JVM?
Ok, dived into the docs and now understand it a bit better. The container instance may stick around for a bit, but should still be stateless.
@hlship yeah it sticks around for a while, depending on request rate
You'd still be quite vulnerable to high startup latency
Also, AFAICT each request runs in a separate container, so if you have spikes in concurrency, they will either wait in line, or fire up another container https://stackoverflow.com/questions/38016683/aws-lambda-and-java-concurrency
@hlship if you have some time, I recently watched this talk[1] and found it quite informative. The TL;DR is that containers are snapshot and are long-lived, a @danielcompton said, and can be reclaimed and restarted after some time - no matter what. [1]: https://www.youtube.com/watch?v=GINI0T8FPD4
@hlship @andrewhr @danielcompton We will soon be able to choose Pedestal in CLJ or CLJS. Using CLJ on Lambda does suffer from startup time but throughput under load is better. CLJS starts up fast but doesn’t handle the same volume.
So for bursty workload or low-volume apps, CLJS is going to be better. For continuous workload CLJ will be more cost effective and have higher throughput.
https://github.com/cognitect-labs/vase/pull/76 Is there any reason this is not merged? This currently prevents me from using vase 😞
apparently websocket support is not good enough, does any one know how can I get the session in the on-text
callback ?
I hit some similar problems w.r.t. the way you set up web sockets. I hope to submit a PR that opens it up a bit for approaches that don't quite match what the current code supports. See https://github.com/walmartlabs/lacinia-pedestal/blob/4b92d5caeb0289677d74c128ceb9445509da7733/src/com/walmartlabs/lacinia/pedestal.clj#L390 and https://github.com/walmartlabs/lacinia-pedestal/blob/4b92d5caeb0289677d74c128ceb9445509da7733/src/com/walmartlabs/lacinia/pedestal/subscriptions.clj#L359 for my approach.