1. A computing device comprising a processing unit and memory, the computing device configured to implement a framework providing function execution services, the framework comprising: a controller layer, wherein the controller layer is configured to: receive function definition requests from software components; return function definition results to the software components; receive function execution requests from the software components; and return function execution results to the software components; a wrapper layer, wherein the wrapper layer is configured to: query a function layer to determine function definitions for functions provided by the function layer; pass the function execution requests from the controller layer to the function layer; and pass the function execution results from the function layer to the controller layer; and the function layer, wherein the function layer comprises a plurality of functions, and wherein each of the plurality of functions comprises one or more features; wherein the wrapper layer comprises a plurality of wrappers, wherein each wrapper of the plurality of wrappers corresponds to a different use case of a plurality of use cases, and wherein at least one function, of the plurality of functions, is used by at least two wrappers, of the plurality of wrappers, wherein the wrapper layer is further configured to: determine which functions of a use case are supported by an operating environment of the framework, wherein the operating environment comprises an indication of a particular database; and return function definitions for only those functions that are supported by the operating environment; and wherein the controller layer is further configured to, for each use case: query the wrapper layer to determine which functions, of the plurality of functions, are needed to execute the use case.