<?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 on Porch Documentation</title><link>/v1.5/docs/5_architecture_and_components/function-runner/</link><description>Recent content in Function Runner on Porch Documentation</description><generator>Hugo</generator><language>en-us</language><atom:link href="/v1.5/docs/5_architecture_and_components/function-runner/index.xml" rel="self" type="application/rss+xml"/><item><title>Function Runner Design</title><link>/v1.5/docs/5_architecture_and_components/function-runner/design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.5/docs/5_architecture_and_components/function-runner/design/</guid><description>&lt;h2 id="architectural-context"&gt;Architectural Context&lt;/h2&gt;&lt;p&gt;The Function Runner is &lt;strong&gt;one of several function execution mechanisms&lt;/strong&gt; in Porch. The Task Handler uses a &lt;strong&gt;Function Runtime&lt;/strong&gt; interface that can be implemented by:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Task Handler (in Porch)
 ↓
 Function Runtime
 ↓
 ┌─────┴─────┬──────────┐
 ↓ ↓ ↓
Builtin gRPC Multi
Runtime Runtime Runtime
 ↓ ↓ ↓
In-Process Function Chains
Go Code Runner Runtimes
 (External)
 ↓
 ┌─────────┴─────────┬──────────┐
 ↓ ↓ ↓
 Pod Executable Multi
 Evaluator Evaluator Evaluator
 ↓ ↓ ↓
 Function Cached Fallback
 Pods Binaries Chain
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Function Runtime implementations:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Function Runner Interactions</title><link>/v1.5/docs/5_architecture_and_components/function-runner/interactions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.5/docs/5_architecture_and_components/function-runner/interactions/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;&lt;p&gt;The Function Runner is a &lt;strong&gt;separate gRPC service&lt;/strong&gt; that interacts with multiple systems: the Task Handler (via gRPC), Kubernetes API (for pod management), container registries (for image metadata), and wrapper servers (for function execution). It operates independently from the Porch server, enabling isolated function execution.&lt;/p&gt;
&lt;h3 id="high-level-architecture"&gt;High-Level Architecture&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────┐
│ Function Runner Service │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────┐ │
│ │ Task Handler │ ───&amp;gt; │ gRPC │ ───&amp;gt; │ Eval │ │
│ │ (in Porch) │ │ Server │ │uators│ │
│ └──────────────┘ └──────────────┘ └──────┘ │
│ ↑ │ │ │
│ │ ↓ ↓ │
│ │ ┌──────────────┐ ┌──────┐ │
│ └──────────────│ Kubernetes │ │Image │ │
│ │ API │ │Cache │ │
│ └──────────────┘ └──────┘ │
│ │ │ │
│ ↓ ↓ │
│ ┌──────────────┐ ┌─────────┐ │
│ │ Function Pods│ │Registry │ │
│ │ + Services │ │ APIs │ │
│ └──────────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="task-handler-integration"&gt;Task Handler Integration&lt;/h2&gt;&lt;p&gt;The Function Runner integrates with the Task Handler through the gRPC Runtime:&lt;/p&gt;</description></item></channel></rss>