Greetings -

I wouldn't be too hard on the customer. It's pretty common that the customer comes with a solution in mind that makes perfect sense to them. The challenge is to untangle the tacit assumptions they are making and read the tea-leaves to get to the problem they are trying to solve.

Basically, what they want to do is run the entire application within the Postgres database engine...data, business logic, page rendering, everything. What that suggests to me on first blush is either lots of PL/Ruby (and a newly invented internal logical architecture and framework to structure it), or patching Rails to pull all its view elements from the database like some Content Management System on steroids.

Ouch.

Of course, I will probably be pushing back on this architectural requirement for phase 1, just so we can get something working quickly and with minimal expense. So far, security is the only reason given for the database-centric architecture, but we've secured some pretty sensitive systems using more traditional web application architectures before.

You might also want to tell your customer that approach is fraught with its unique perils. Rails, by virtue of being open-source and widely-deployed, has a community that finds security holes and fixes them. Personally, I would trust the security in rails over something of the same scale I wrote myself, simply by virtue of it being pounded on year after year and all the eyes and hands in the code.

Sure the 'everything in the DB' approach has the advantage of fewer servers and apps to secure, but I would not be worried about the security of Postgres itself rather than the consequences of the bugs introduced by writing a full-stack framework on top of it.

I would also make sure that your client is aware that a lot of security regulations require that data be stored on a seperate, and seperately secured network than the applications. That is a requirement for PCI compliance, at the very least. The best way to secure the data that they care so much about is to put multiple layers of security between the outside world and their data.

Also, this architecture would affect our ability to cluster the application across arrays of cheap servers too...we'd be improvising so much that's a given in Rails. I'm not so sure that the benefit would be worth the time and expense over a properly tiered standard webapp.

I doubt there's really a benefit. I think the key to convincing the customer to abandon their desire to stash everything in postgres will be to gain a more detailed understanding of what they really mean when they say 'security'.
_______________________________________________
Bdrg-members mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/bdrg-members

Reply via email to