Ruslan, Thank you for all that information!
As I understand, for Sqlite, tools like CubeSql or Valentina Server bring the connection via a port. And perhaps a queuing mechanism.
For example, in the case of a Xojo web app, Xojo web apps on servers A and B can communicate with the same Sqlite database on server C. On the server C, Valentina Server awaits new connections / requests and sends these requests to the local Sqlite database.
What will happen if Valentina Server receives two simultaneous write requests? Or if Valentina Server receives a write request while Sqlite is already locked with current writing?
Is Valentina puts a pending write request until Sqlite is available? Or it sends all queries to Sqlite, and Sqlite manage this?
As Philip said, Xojo includes encryption for Sqlite. This is important. It would be nice if Valentina Server could handle a encrypted SQLite database.
CubeSql is convenient, but it must rewrite all the queries that contain prepared statements. So almost all write requests in a web app. This is also the case of Valentina Server? What must we rewrite in our existing queries?
Compared to CubeSql, I see that Valentina Server provides other advantages that the connection via a port: reports and PDF server, easy PDF creation, graphic design (schema editing & diagramming) and other features.
Another very interesting point, apparently you will provide tools to migrate on a Valentina database. This is useful if we have reached the limit of Sqlite.
But the most important in the beginning, at least for me, is simple to manage / migrate a Sqlite database in Valentina Server (Many requests to rewrite?), reliability (especially when there are multiple write requests to manage in Sqlite) and speed.