hello!
I am trying to determine which Clojure web server libraries are worth recommending to newcomers
I know yada uses Aleph
Zach Tellman has recently said that he's going to wrap up the open issues, call it Aleph 1.0, and step away from the project.
He also said that further development will have to be done by a new maintainer.
I was thinking that JUXT might step into that role since you use Aleph so much.
Well, here's my question: do you still recommend Aleph, given the current status of the project?
Good question. Without pre-announcing too much, we are working to decouple yada from manifold in the next major update.
Now that Ring supports async (it didn't when yada started out) it is possible to support other async servers.
The concept of a 'resource model' is still needed and missing in Ring, so getting to http compliance without something like yada is tricky for users.
Although we've not run into issues with Aleph so far. We've been quite happy with manifold overall.
Ah, thanks. Any concerns about Jetty's performance or Websockets?
I think our love for Aleph came from how easy it was to do non blocking io. The new ring async still doesn't address this, and consumes a whole thread in order to process streamed responses. This is particularly expensive if you're streaming web sockets which are low traffic. With something like Aleph you should be able to handle way more simultaneous connections.
I'm not sure if ring jetty has a WebSocket story now? Do you have to use a fork still to achieve that?
https://github.com/sunng87/ring-jetty9-adapter not a fork, but you have to go third party
Talking with James Reeves last week, we'll have to wait for Ring 2 to get async responses (spoon fed content bodies)
Breaking change?
@ericnormand fwiw, we've been using aleph/yada in production for years and never had a problem with it
yeah
I was recommending Aleph as #1 choice
but I think it has to be more nuanced now that I've learned Zach is stepping away and JUXT isn't stepping in.
if Zach can't find a new maintainer, and JUXT won't do it, he could consider clj-commons
who might step in? as in a largish company with interest
and I didn't realize Immutant was dead, too
ring jetty doesn't have all the features, but at least it is maintained
I talked with Alexey at Strange Loop, and he's looking for someone to take over maintenance who is using it in production
He's happy to help mentor
We are using Aleph in prod, so it may end up being me 🙂
Here's a huge list of companies using Aleph: https://github.com/ztellman/aleph/issues/450
nice
and to be honest, I would still use it myself on new projects
I wouldn't be surprised if it's basically just done. Not sure.
yeah, that's what I believe
but it would be nice to know someone is backing it if something breaks
I hear Immutant doesn't work on JDK12, for instance
and as Netty is released and older versions stop getting fixes, Aleph will have to keep up
i don't think it's completely done... haven't had any issues on the server side yet, but ran into one a little while ago where i couldn't use aleph client because it doesn't support http/2 hpack
I don't know the release plans for Netty
Maybe there's not much to do?