ConfigsMay 10, 2026·3 min read

Fn Project — Container-Native Serverless Functions Platform

An open-source container-native serverless platform that runs functions as Docker containers on any cloud or on-prem.

Introduction

Fn Project is an open-source, container-native serverless platform originally created at Oracle. Every function runs inside a standard Docker container, which means any language or binary that can be packaged in a container can be used as a serverless function. It runs on any infrastructure — cloud, on-premises, or a laptop.

What Fn Project Does

  • Runs serverless functions packaged as Docker containers on any infrastructure
  • Supports any programming language via Docker-based function development kits (FDKs)
  • Provides hot function containers that stay warm to reduce cold start latency
  • Includes a built-in flow orchestration service for composing multi-step workflows
  • Exposes a REST API and CLI for function management, invocation, and monitoring

Architecture Overview

The Fn server is a single Go binary that manages function lifecycle. When a function is invoked via HTTP, the server pulls the corresponding container image, starts it, and routes the request via stdin/stdout. Hot containers remain running between invocations to eliminate cold starts. The server stores function metadata in a SQL database (SQLite by default, MySQL/Postgres for production) and uses an LRU cache for container scheduling.

Self-Hosting & Configuration

  • Single binary or Docker-based deployment with fn start
  • Configure a production database backend (MySQL or PostgreSQL) via environment variables
  • Set up an external Docker registry for multi-node deployments
  • Use fn deploy to push function images to a registry and register routes
  • Scale horizontally by adding Fn server nodes behind a load balancer

Key Features

  • Language agnostic: any runtime that fits in a Docker container works
  • Hot functions: containers stay warm across invocations to reduce latency
  • Fn Flow: built-in orchestration for composing functions into workflows with error handling
  • Standards-based: uses OCI container images, no proprietary packaging format
  • Multi-cloud portability: runs identically on AWS, GCP, Azure, or bare metal

Comparison with Similar Tools

  • AWS Lambda — managed serverless locked to AWS; Fn Project is self-hosted and cloud-agnostic
  • OpenFaaS — similar goals but uses a different function packaging model; Fn uses raw Docker containers
  • Knative — Kubernetes-native serverless requiring a K8s cluster; Fn runs standalone with Docker only
  • Fission — Kubernetes-focused with environment pooling; Fn is container-native without requiring K8s

FAQ

Q: Does Fn Project require Kubernetes? A: No. Fn runs directly on Docker. However, it can optionally be deployed on Kubernetes for orchestration.

Q: How are cold starts handled? A: Fn keeps hot containers alive between invocations. Frequently called functions avoid cold starts entirely. Idle containers are reclaimed after a configurable timeout.

Q: What languages are supported? A: Fn provides official FDKs for Go, Java, Python, Ruby, Node.js, and C#. Any language that runs in a Docker container can be used without an FDK.

Q: Is Fn Project still maintained? A: The project is available on GitHub with community contributions. It is used in production at Oracle Cloud Infrastructure as the basis for Oracle Functions.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets