Page MenuHomePhabricator

Use a Real Message-Passing Protocol instead of Custom Regexes and State Machine
Open, MediumPublic

Description

Description

The evaluator <-> executor "protocol" currently relies on formulaic sequences of strings sent to buffers, e.g.

: start result <<<
: // big JSON blob, possibly spanning multiple messages
: >>> end result

The evaluator then manages an internal state machine in response to the messages it receives. We should instead use an existing protocol to avoid classes of errors related to message spoofing.

Desired behavior/Acceptance criteria (returned value, expected error, performance expectations, etc.)

  • unhackable protocols 😤

Completion checklist