This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-03-26
Channels
- # announcements (3)
- # architecture (53)
- # babashka (6)
- # beginners (101)
- # bitcoin (3)
- # calva (4)
- # cider (3)
- # clara (7)
- # cljdoc (2)
- # cljsrn (14)
- # clojure (104)
- # clojure-europe (96)
- # clojure-germany (21)
- # clojure-nl (6)
- # clojure-serbia (3)
- # clojure-spain (1)
- # clojure-uk (13)
- # clojuredesign-podcast (4)
- # clojurescript (14)
- # cursive (5)
- # data-science (19)
- # datomic (16)
- # emacs (15)
- # fulcro (33)
- # graalvm (5)
- # honeysql (3)
- # instaparse (2)
- # jobs (3)
- # lsp (82)
- # malli (2)
- # off-topic (11)
- # pedestal (4)
- # polylith (62)
- # practicalli (4)
- # shadow-cljs (56)
- # tools-deps (53)
- # vim (17)
- # xtdb (53)
Wasn't sure if #beginners was the right place to ask so Ill put it here in the meantime.
after a few years of experience working with Clojure I STILL dont know the purpose of WildFly
What problem does it solve?
What are some questions a developer asks themselves or problems they runs into that leads them to say "Hey let me use WildFly".
Ive seen videos that give analogies to what an application server is and it makes sense but I don't see how its any different than running a jar with.. java -jar myproject-standalone.jar
Like what are some examples of "Hey if I did java -jar myproject-standalone.jar then X, Y and Z isn't going to work... Let use WildFly instead". (I know that running a command is not the same as Wildfly but I'm having a hard time wording this question)
Or what are some things you may manually need to do that WF solves the issue or simplifies.
Wildfly (and JavaEE app servers) were somewhat popular some years ago but have fallen out of fashion (for good reason imo); the rationale for them is similar to the one for containers now, except the isolation is done at a classloader level. Moreover, app servers have to implement a set of standard APIs, so you could program to those and deploy to any JavaEE app server (theoretically, because they were standard the same way SQL is standard), which would be managed by ops.
I would say that the dirt cheap storage and memory, as well as the rise of “you build it you run it” made the separation of dev and ops silly, plus projects are much less standardized now…
Most of my experience has been writing code and not building deployment pipelines so perhaps that experience is what I am lacking thats preventing things from clicking
@mario.cordova.862 FWIW, at World Singles Networks, we package all our web apps as JAR files and run them with java -jar ...
and we use the embedded Jetty adapter from Ring to start the web server. I’ve not felt a need for a web server container such as WildFly etc.
So then at what point does it become a need? Or is it something that is never a need and its just a nice to have? But then what is so nice about it?
they renamed JBoss to WildFly. 😏 we used in production. provided nice UI for WAR deployment and connection pooling an etc etc. It has paid support from Redhat hence the way to make money. we later switched to Tomcat. Now world have switched to cloud and micro services, not sure how much it is still useful. In Clojure world most people running jar so seems like more less useful.
At my previous job we created a WAR file so that makes sense. As for the connection pooling.. doesn't code do that. I remember using C3P0/Hikari, isn't that used for connection pooling (DB) or this a different type of connection pooling?
We use c3p0 for database connection pooling (and next.jdbc
supports that — and HikariCP — out-of-the-box. as well as with Component)
We have a legacy app that uses Tomcat and I’m so looking forward to deleting all that cruft off our production servers and just using java -jar
instead once we get that app fully rewritten!