Hi all
Ive traditionally used cubesql as the backend for very small and personal productivity apps.
Im now writing a web app for a business with about 20 staff.
It runs all processes of a magazine production .
So lots of weird and wonderful processes.
Some access by desktop apps, possible phone apps.
Possible aloe rest interface.
I know cubesql will do this fine, but Im thinking down 5he track if a new developer eventually
Takes over the maintenance.
Any suggestions? Pros and Cons?
Should I stay with cubesql or should I consider a more mainstream dB?
[quote=427293:@James Nicholson-Plank]Hi all
Ive traditionally used cubesql as the backend for very small and personal productivity apps.
Im now writing a web app for a business with about 20 staff.
It runs all processes of a magazine production .
So lots of weird and wonderful processes.
Some access by desktop apps, possible phone apps.
Possible aloe rest interface.
I know cubesql will do this fine, but Im thinking down 5he track if a new developer eventually
Takes over the maintenance.
Any suggestions? Pros and Cons?
Should I stay with cubesql or should I consider a more mainstream dB?
Many thanks in advance
James[/quote]
there is no reason not to use cubeSQL for the volume/size you are talking about. I would write a REST API to be in front of whatever database you decide on for any connectivity to it other that localhost connections. to protect your database from bad actors.
To my mind regrettable CubeSQL is a dead product and should not be used in new projects. The reality is that the last release was on the 12th of January 2017 and as I understand it the developer now has a different focus. We have not even had one of his usual $100 dollar offers, so presumably he does not need the cash. It is too bad cause I really liked it, but I would no risk a commercial project on it.
I would consider PostgeSql to be the best option these days.
The product is solid and gets updates often. The documentation is pretty bad. The support is a bit quirky. Questions are answered quickly on their forum.
[quote=427347:@James Nicholson-Plank]Ill consider it
Thanks Beatrix[/quote]
I would look at from the other point of view, PostgreSQL, MiraDB and MySQL are widely used and trusted - the are used to run mission critical systems all over the world, why would you ignore those and go with a minor vendor for the mission critical part of an application? Because if it goes wrong that is what the client will want to know and that is what he will be hearing from others that he will consult in that situation…
The beauty of cubeSQL server is it is just SQLite under the hood. There is no magic here, no wizardry, no vendor-specific tools. You can easily upgrade SQLite to something else when the time comes that you need to scale to larger workloads. However, for many people, they will find SQLite in combination of cubeSQL will be plenty.
SQLite happens to be one of the most resilient file formats and data stores ever. Truth be told when we are talking about widely used and trusted well SQLite beats any of the other database servers. cubeSQL adds multi-user capability to that via a socket connection but the underpinnings are raw SQLite.
This is in fact a great advantage because there is no lock-in. You can literally add/remove SQLite databases from your cubeSQL server as-if it were natively created by cubeSQL. That is a tough proposition to beat.
Memory usage is really light as well and runs on small budget friendly servers just fine and can scale quite nicely. We have customers using it for very large deployments.
Now eventually you do reach some limitations that are inherit to SQLite like row vs table locking so if you are doing several writes per second it becomes increasingly important to lock as little of the database as needed during a transaction. At that point you should be considering a more robust RDBMS but you also need a larger server as well.
I think target audience here is the most important attribute. Are we talking about 25-100 web app users from an office or 5000 concurrent users from the Internet or more? At a certain point even MySQL on a single VM is not trustworthy and you need replication, clustering, etc. Context is key.
Also while I love Valentina Studio and use it daily I find the server/database product to be terribly unreliable. I don’t know if it to be a lack of cross platform testing or what have you but moving databases between macOS and Linux and other nuanced gotchas can leave you with a dead server. Unlike cubeSQL and SQLite you can’t just easily copy your databases somewhere else. Valentina is the epitome of vendor lock-in when it comes to database format and server.