>From what you've described, it seems as though it would be easy to build 
the server side of this application in Clojure.

I found Clojure to be very easy to pick up. I won't say that the first few 
applications that I wrote in Clojure were great Clojure code, but it was 
easy for me to move from Java to Clojure.

Ring is a good start. You might also want to check into some libraries 
built on top of  Ring such as https://github.com/weavejester/compojure 
and https://github.com/metosin/compojure-api. We've found compojure-api to 
be extremely handy.

I haven't played with any AWS clients in Clojure, so I'm afraid I can't 
answer that question.

Clojure does integrate well with relational databases in general. We're 
using PostgreSQL, but any database that has a JDBC driver available should 
be easy to use. You may want to check into some of the Clojure libraries 
that provide DSLs for generating SQL statements. I've 
tried http://sqlkorma.com/ and https://github.com/jkk/honeysql, and I've 
had fairly good luck with both of them.

Dennis

On Monday, January 9, 2017 at 4:06:30 PM UTC-7, (hash-map :new "to clojure" 
:need "assistance") wrote:
>
> Hi all!
>
> So, I'm new to Clojure! I'm coming in from a Java background and am 
> currently working on a project that has prompted me to have a look at 
> whether Clojure would be useful. 
> I have started by going through the "Brave Clojure" website and working 
> through the exercises and what I've seen has at many times just made me 
> smile at the (at least so far) intuitiveness, simplicity and power of the 
> language. My use case is this:
>
> A real time (sealed bid) auctioning system. We have a maximum number of 
> bids (example 100) that's set by the owner of the product. Our clients then 
> bid on the product. Once a bid is made, it's committed to a database and 
> the counter increments. The next bid is processed, and so on. Once the 
> maximum number of bids is reached, bidding stops. This auctioning system is 
> for a mobile application however the main code for the real time system 
> sits on a web server. The mobile app is a very thin client so simply makes 
> a call to the app server via an API which then processes that request (and 
> returns the result). 
>
> Requests are processed in order - so we're following a "first come first 
> serve" approach. If at any time a request is due to be processed and the 
> counter hits 100, all requests should gracefully "fail" and be blocked from 
> bidding. Now this is obviously possible in Java, albeit with a lot more 
> code and thinking about the different ways to make everything thread-safe, 
> etc. This is a completely new project so there's no restriction on 
> languages to be used, etc. PS: We're all Java developers.
>
> I was really attracted to Clojure because of a) the JVM b) the fact that 
> it seems to be able to handle concurrency effortlessly c) our API needs to 
> scale and so we want to ensure that we can handle the 100K+ connections 
> easily when the project reaches that stage. Obviously this is more to do 
> with the hardware, but the way we build the API is a definite factor. 
> Finally, there seems to be less verbose codebases on Clojure and it might 
> help to keep our overall codebase light and readable! 
>
> My questions therefore are these:
>
> With the time we have (around 1 month for this stage), is this something 
> we can easily build in Clojure?
> Is the movement from Java to Clojure easy for someone completely new to 
> Clojure?
> Are the libraries that we might use for this - I had a look at Ring 
> briefly robust for our use case?
> Does Clojure have good support for using AWS for example? (You can call 
> Java from Clojure so I guess this wouldn't really be an issue.)
> Does it interface well with MySQL?
>
> I'd be very grateful if someone could point me in the right direction on 
> this - like I said, really really like what I'm seeing of Clojure but just 
> want to be sure from the community before I recommend this as an action to 
> take!
>
> (hash-map :many "thanks")
>
>

-- 
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/d/optout.
  • New to... (hash-map :new "to clojure" :need "assistance")
    • R... Dennis Roberts
      • ... (hash-map :new "to clojure" :need "assistance")
        • ... Christopher Small
    • R... Matching Socks
    • R... Sean Corfield
      • ... (hash-map :new "to clojure" :need "assistance")
    • R... simon lomax
      • ... (hash-map :new "to clojure" :need "assistance")
    • R... Gregg Reynolds
    • R... Gregg Reynolds
      • ... (hash-map :new "to clojure" :need "assistance")

Reply via email to