I just wanted to point out that if you’re looking to write small background 
processes that are more shell-script-y than server-y, you might consider CLJS + 
Node.js. That way you can still leverage Clojure without the need to spin up an 
entire JVM just for a quick cron task.  

Cheers,

Josh


On Saturday, January 25, 2014 at 7:40, Jarrod Swart wrote:

> 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 
> (mailto: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 
> (mailto: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 
> (mailto:clojure+unsubscr...@googlegroups.com).
> For more options, visit https://groups.google.com/groups/opt_out.



-- 
-- 
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.

Reply via email to