Page MenuHomePhabricator

Define interface for the function-evaluator
Closed, ResolvedPublic

Description

We should define the interface for the function evaluator. As the function evaluator will be limited in what it will be able to access, we need to make sure that all necessary information is available to the evaluator.

Related Objects

StatusSubtypeAssignedTask
OpenNone
ResolvedNone
ResolvedNone
ResolvedNone
OpenNone
StalledNone
Resolvedcmassaro
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
DuplicateNone
OpenNone
ResolvedNone
Resolvedcmassaro
Resolvedcmassaro
Resolvedcmassaro
ResolvedJdforrester-WMF

Event Timeline

DVrandecic triaged this task as Medium priority.Jan 27 2021, 5:16 PM

The function evaluator should have at least one path (evaluate?) which takes a ZObject of the following shape:

https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Function_evaluator_call

The function evaluator may have other paths later, e.g. to get information about the function evaluator (i.e. what language does it support? What kind of features does this evaluator have?) But we can ignore these for now, and assume that the orchestrator knows all available evaluators and their features (i.e., for pre-launch, it will know that there are two function evaluators, one for Javascript and one for Python, and that's it). Later this may become more interesting.

Probably something that the evaluator will need is some kind of health check API so that the orchestrator (or/and anything working as load balancer) can check out availability of the different language services, or the current load state of these.

Jdforrester-WMF raised the priority of this task from Medium to High.Feb 10 2021, 5:33 PM