What/Why:
Since adding function call metrics, we noticed main reason for several excecute() calls are due to validations; this is because we have formerly aggressively validated on all function calls. We should be okay to remove a lot of this. However:
[Cory] We still want to run at a minimum the manually-defined validators on arguments of functions, and (?)their return values, as that's the only place where community members can define any constraints around Types beyond the raw stuff our system offers. E.g. for Number, being able to say that the string is one of digits. Anywhere a value comes in, and a value goes out. Everything else can go away; they make claims about the internals of our function models?
[James] +1, static validation not so useful. Maybe declare in logging when we're doing the validation ("Starting validation of input 0", etc.) for clarity?
[Cory] Not sure how well we can flag that an execution call comes from a particular part of the stack; this is a long-running pain point but might be too much extra work to do right now. Might need a new top-level boolean of "this is a validation call", only set true for validation parts?
(refer to Eng Meeting on 10/09/24)
How:
- Remove static validators
- Figure out a way to log validators we need to keep around (maybe need to pass an arg to execute() functions, e.g. isValidator = false,...)