Question

I am evaluating Rails as a framework for a new web project. My only concern is that as far as I know, Rails was built with a very strong inclination towards CRUD and SQL applications.

The architecture style of my application will be domain driven with a NoSQL database, almost the opposite to the roots of Rails. I also have the impression that Rails apps are strongly tied to one single database.

I have seen some work trying to make Rails NoSQL-friendly, specially DataMapper 2 seems very interesting (and taking a long time), but I am wondering if the current Rails architecture is suitable for DDD projects (anti active record).

Ideally I would like to use Rails for its maturity, community and Ruby. But I have also seen many mature projects that had problems to embrace new programming styles which were not considered from the beginning.

Also I am considering a micro-framework like Sinatra which should give me the flexibility to use my own architecture style. The only downside of that I would prefer a framework taking care of as many things as possible (no long experience with web development).

Was it helpful?

Solution

It sounds like Sinatra is your best bet.

Some of the concepts you've described are not, traditionally, out-of-the-box so to speak for a Rails application - and configuring multiple NoSQL databases with datamapper will give you some headaches.

With Sinatra, you get the best of both worlds. It's a domain specific language, not a framework - so you can customize it exactly the way you need it. Whilst it will take some work to setup, having complete control over the framework your application uses is very satisfying. Build it from the ground up.

Don't get me wrong, I love Rails, but the moment I have to start playing around with it's internals, you're better off just building it yourself with Sinatra.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top