In the mORMot units, you may also find those classes also inheriting from TSQLRestStorage:

In the above class hierarchy, the TSQLRestStorage[InMemory][External] classes are in fact used to store some TSQLRecord tables in any non-SQL backend:

  • TSQLRestStorageExternal maps tables stored in an external database (e.g. Oracle, MSSQL, PostgreSQL, FireBird, MySQL or any OleDB/ODBC provider, via our SynDB optimized classes);
  • TSQLRestStorageInMemory stores the data in a TObjectList- with amazing performance;
  • TSQLRestStorageMongoDB will connect to a remote MongoDB server to store the tables as a NoSQL collection of documents.

Those classes are used within a main TSQLRestServer to host some given TSQLRecord classes, either in-memory, or on external databases.
They do not enter in account in our Client-Server architecture, but are implementation details, on the server side.
From the client side, you do not have to worry about how the data is stored, just consume it via REST.

Feedback is welcome in our forum, as usual!