High-performance, scalable systems often need some way to speed up applications by reducing the database load. In most cases, to improve application performance, information should be retrieved from fast, in-memory caches, instead of reading it from the database (which is a persistent and slower disk-storage).
Applications that are mostly-read applications are one typical case where this kind of solution has a positive impact on application performance and scalability.
Another typical case is that of application objects that repeatedly make the same query.
If many requests make the same query with the same parameters, the results can be cached. Subsequent requests can check the cache, and only perform the datastore query if the results are missing or have expired. This is called ResultSet caching in GeneXus.
In Smart Device applications, where the architecture allows keeping a local SQL Lite database for caching, information should be retrieved from the database only when the local cache is not valid anymore. This is called Smart Devices caching.
Both caching mechanisms (which complement each other), can be implemented in a distributed environment, by means of the Distributed cache in GeneXus applications.
Note that there is also the Prepared statements cache, which is managed through the Maximum cached cursors per connection property.