I would _strongly_ recommend you consider HoneySQL over KormaSQL. Korma is based on macros, making it much more difficult to dynamically/programatically construct queries. HoneySQL by contrast is simply a translational layer from Clojure data structures to SQL queries, so the probablem of querying SQL databases is reduced to one of composing Clojure data structures. This is signifcantly more in line with the Clojure philosophy of being a "data-driven" programming language. Zach Tellman's talk Always be Composing (https://www.youtube.com/watch?v=3oQTSP4FngY) makes an excellent argument in this vein.
My 2c Chris On Thursday, January 12, 2017 at 11:43:17 AM UTC-8, (hash-map :new "to clojure" :need "assistance") wrote: > > Hi Dennis, > > Thanks very much for getting back to me - this sounds really good. I've > had a look at sqlkorma seems simple enough to get started working with. > > Once again, thanks very much most appreciated. > > > On Tuesday, January 10, 2017 at 12:05:48 AM UTC, Dennis Roberts wrote: >> >> 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.