Skip to main content
The function runner orchestrates the execution of user-defined functions (UDFs) including queries, mutations, and actions. It manages function compilation, caching, transaction coordination, and result collection.

Overview

Path: crates/function_runner/ The function runner provides:
  • Function execution orchestration
  • Compilation and caching
  • Transaction lifecycle management
  • Isolate coordination
  • Result streaming
  • Error handling and retry logic

Architecture

Function types

Query functions

Read-only database access:
Properties:
  • Read-only (no mutations)
  • Automatic subscriptions
  • Cacheable
  • Fast execution

Mutation functions

Read-write database access:
Properties:
  • Transactional writes
  • Deterministic
  • No external I/O (except actions)
  • Triggers subscriptions

Action functions

Arbitrary side effects:
Properties:
  • Can call external APIs
  • Non-deterministic
  • Longer timeouts
  • Can schedule other functions

Function runner implementation

Main struct

Execute function

Compilation caching

Compilation cache

Execution flow

Query execution

Mutation execution

Isolate pool

Pool management

Execution queue

Queue implementation

Error handling

Error types

Retry logic

Resource limits

Execution limits

Metrics and monitoring

Execution metrics

Testing

Function execution tests

Next steps