| CPC G06F 16/2291 (2019.01) [G06F 16/2272 (2019.01); G06F 16/256 (2019.01); G06Q 30/04 (2013.01)] | 18 Claims |

|
1. A multi-tenant system, comprising:
at least one hardware processor;
a main storage system, the main storage system including:
a monolithic database configured to store global records associated with one or more global objects, each global object of the one or more global objects including fixed global fields common for all tenants of the multi-tenant system, the monolithic database configured to store a particular global record associated with a particular global object in response to a particular global record storage request and to retrieve the particular global record in response to a particular global record fetch request on behalf of a particular tenant of the tenants of the multi-tenant system;
a monolithic application configured to receive the particular global record storage request or the particular global record fetch request, the monolithic application configured to process the particular global record storage request by instructing the monolithic database to store one or more particular global field values of the particular global record for the particular tenant, and to process the particular global record fetch request by instructing the monolithic database to retrieve the one or more particular global field values of the particular global record for the particular tenant; and
a monolithic application programming interface (API) configured to receive the particular global record storage request or the particular global record fetch request and communicate the particular global record storage request or the particular global record fetch request to the monolithic application;
a custom object storage system, the custom object storage system including:
a custom object database configured to store custom records associated with one or more custom objects, each custom object of the one or more custom objects including one or more custom fields for an individual tenant of the tenants of the multi-tenant system, the one or more custom fields augmenting the fixed global fields on behalf of the individual tenant, the custom object database configured to store a particular custom record associated with a particular custom object in response to a particular custom record storage request and to retrieve the particular custom record in response to a particular custom record fetch request on behalf of the particular tenant;
a custom object record service configured to process the particular custom record storage request by instructing the custom object database to store one or more particular custom field values of the particular custom record for the particular tenant, and to process the particular custom record fetch request by instructing the custom object database to retrieve the one or more particular custom field values of the particular custom record for the particular tenant;
a custom object API configured to receive the particular custom record storage request or the particular custom record fetch request and communicate the particular custom record storage request or the particular custom record fetch request to the custom object record service; and
a custom object metadata service configured to enable the particular tenant to generate the particular custom object on behalf of the particular tenant individually, the particular custom object configured to generate the particular custom record, the custom object metadata service further configured to generate a particular custom object map, the particular custom object map identifying the one or more particular custom fields of the particular custom object for the particular tenant; and
a query engine executable by the at least one hardware processor and configured to receive a query associated with the particular tenant, to use a global object map to generate one or more global record fetch requests for one or more relevant global records from the monolithic database in response to the query, to use the particular custom object map to generate one or more custom record fetch requests for one or more relevant custom records from the custom object database in response to the query, and to generate a query response in response to the query based on the one or more relevant global records and the one or more relevant custom records, the global object map identifying the one or more particular global object fields of the particular global object for the particular tenant.
|