Hi,

imaging you could do a software project from scratch and Clojure is the main
programming language. What architecture would you choose? Of course it
depends, so here are some requirements and basic conditions:

   - Let's assume that we are building a web application for some social
   media stuff
   - So it has to handle a lot of data
   - And it has to scale (there are a lot more read than write operations)
   - Your data store is a NoSQL document database (e.g. MongoDB)
   - Your deployment environment is cloud based (e.g. EC2).
   - It should be an architecture which fits the functional programming
   paradigma: side effects should be rare and controllable
   - The application should be extendable and maintainable

It is obvious that an application cannot been done which fulfills all the
criteria mentioned above one hundred percent. However you may get very close
to one hundred percent for some of the points.

At the moment I would say that CQRS <http://vimeo.com/13852695> is the most
promising architectural pattern to do scalable, maintainable and extendable
web applications. Nevertheless I've a very hard time to adapt the common
practices of a CQRS application to the "functional world". Most of the CQRS
stuff today comes from an object oriented world, particularly there are a
lot of .Net projects <http://abdullin.com/cqrs/>. There is also a CQRS
Framework for Java named Axon <http://code.google.com/p/axonframework/>.

Regrettably, there are not much writings about what architecture you should
use, if you are working with a functional programming language in the
context mentioned above. May be I just not find the right websites or books.
So here is my initial question again: What architecture would you choose?

Best regards

Max

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

Reply via email to