Our preliminary idea was that the application should be agnostic as far as the persistent database backend is concerned. The idea being that users are free to deploy the application using either mongodb, couchdb or any other type of nosql database. However, this would involve creating a set of loose-coupled interfaces (adapter pattern or otherwise) which funnel actions & data to a specific database backend.
The demo setup started off using CouchDB. However, no Laravel DB driver exists for CouchDB. MongoDB does have such a driver:
So, we should try and see if we can clean up the code to use the laravel-mongodb driver instead. This would be good because it would greatly reduce the hard-wired glue code we have now.
We have to concede though: creating a truly loose coupled interface between the app specific code and any laravel-* DB driver is going to be a bit too complex in this stage of the project given our milestone planning.
I would leave this to the developer. We could state that "the software should use an appropriate persistent storage that is open source en well supported (e.g. MongoDB)"
Our preliminary idea was that the application should be agnostic as far as the persistent database backend is concerned. The idea being that users are free to deploy the application using either mongodb, couchdb or any other type of nosql database. However, this would involve creating a set of loose-coupled interfaces (adapter pattern or otherwise) which funnel actions & data to a specific database backend.
The demo setup started off using CouchDB. However, no Laravel DB driver exists for CouchDB. MongoDB does have such a driver:
https://jenssegers.com/projects/laravel-mongodb
So, we should try and see if we can clean up the code to use the laravel-mongodb driver instead. This would be good because it would greatly reduce the hard-wired glue code we have now.
We have to concede though: creating a truly loose coupled interface between the app specific code and any laravel-* DB driver is going to be a bit too complex in this stage of the project given our milestone planning.