I appreciate your outlook, and yes I have definitely discussed the pros of Clojure. They are apprehensive in the event they have to outsource development work, and I don't blame them. I'm just going to be a lot happier and more productive in Clojure.
Thanks again! On Saturday, January 25, 2014 12:25:51 AM UTC-5, Mikera wrote: > > Be careful about "weaselling in" Clojure - If I was your client and you > did that without consulting me, I'd be pretty annoyed (possibly to the > extent of not working with you again). Better to be upfront about the good > reasons for using Clojure (concurrency support, awesome libraries, > productivity etc.) > > On the server architecture side: I think it's preferable to package things > together into a big JVM instance. Reasons: > - It's relatively easy to make some lightweight compojure routes to bundle > different APIs / micro-apps together in one app server > - It will make deployment much simpler: you can often get away with > something as simple as: java -jar myserver.jar > - You'll accumulate less duplication / technical debt if you keep > everything in sync (library versions, shared utility code etc.) > - A single large JVM instance will have a lot less overhead compared to > multiple small JVMs > - JVM applications are better suited in general to long-running instances > rather than small scripts > > I'd consider breaking this into multiple instances only if there was a > good reason, e.g. > - Need for process isolation for security / robustness reasons > - Need to have different lifecycles for different application servers. > > Basically you can think of it this way: > - cron jobs => process coordination within the server (perhaps core.async, > or other scheduling tools) > - python scripts / micro-apps => separate Compojure routes / APIs within > the server > - hacking at the command line => hacking with the REPL > > > On Saturday, 25 January 2014 12:58:03 UTC+8, Jarrod Swart wrote: >> >> I have a general question about application architecture as it relates to >> deploying to the server. >> >> Most of my previous development work involved python/php/ruby so we >> typically had: >> >> 1. One massive framework / application complection nightmare >> 2. Background scripts run by crons >> >> At present I am working on an application for a client, and I am trying >> to weasel in Clojure where I can. I will likely have to make the Clojure >> aspects a black box. >> >> If I were doing this in another language I would simply write the smaller >> pieces of functionality as python scripts, plop them on the server and then >> set the crons. >> >> How do I do this with Clojure? If I package each micro-app as an uberjar >> that is a lot of JVM, likely eating at the resources of the poor (see: >> crappy) VPSs this project will likely run on. >> >> Thoughts? >> >> How do you structure web Clojure apps beyond: put the whole thing in a >> servlet\uberjar? >> > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.