<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Function Runner Functionality on Porch Documentation</title><link>/docs/5_architecture_and_components/function-runner/functionality/</link><description>Recent content in Function Runner Functionality on Porch Documentation</description><generator>Hugo</generator><language>en-us</language><atom:link href="/docs/5_architecture_and_components/function-runner/functionality/index.xml" rel="self" type="application/rss+xml"/><item><title>Function Evaluation</title><link>/docs/5_architecture_and_components/function-runner/functionality/function-evaluation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/5_architecture_and_components/function-runner/functionality/function-evaluation/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Function evaluation is the core responsibility of the Function Runner for &lt;strong&gt;cached binaries&lt;/strong&gt;. The pod evaluator sections below now run in the Engine; see 
&lt;a href="/docs/5_architecture_and_components/engine/functionality/function-evaluation/"&gt;Engine Function Evaluation&lt;/a&gt;. The Engine sends &lt;code&gt;exec_path&lt;/code&gt; on the gRPC request; Function Runner executes that binary or returns NotFoundError if &lt;code&gt;exec_path&lt;/code&gt; is empty.&lt;/p&gt;
&lt;h3 id="high-level-architecture"&gt;High-Level Architecture&lt;a class="td-heading-self-link" href="#high-level-architecture" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────┐
│ Function Evaluation System │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Evaluator │ │ Execution │ │
│ │ Interface │ ───&amp;gt; │ Strategies │ │
│ │ │ │ │ │
│ │ • Common │ │ • Pod Evaluator │ │
│ │ Contract │ │ • Exec Evaluator│ │
│ │ • Pluggable │ │ • Multi Eval │ │
│ └──────────────────┘ └──────────────────┘ │
│ │ │ │
│ └────────┬────────────────┘ │
│ ↓ │
│ ┌──────────────────┐ │
│ │ Wrapper │ │
│ │ Server │ │
│ │ │ │
│ │ • gRPC Frontend │ │
│ │ • Binary Exec │ │
│ │ • Result Parse │ │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="evaluator-interface"&gt;Evaluator Interface&lt;a class="td-heading-self-link" href="#evaluator-interface" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;All evaluators implement a common interface that defines the contract for function execution.&lt;/p&gt;</description></item></channel></rss>