Fission is a Kubernetes-native serverless framework (FaaS) that deploys and manages functions triggered by HTTP requests, message queues (Kafka, NATS, etc.), cron schedules, and Kubernetes events. The system is composed of multiple microservices: a router that proxies HTTP requests to function pods, an executor that manages warm-pool and per-function deployment backends, a builder that compiles function packages, a fetcher sidecar that materializes code into pods, and a storage service for archive management. All resources (Function, Environment, HTTPTrigger, Workflow, etc.) are defined as Kubernetes Custom Resource Definitions (CRDs) and reconciled by controller-runtime controllers. The architecture supports multi-tenant namespaces, canary deployments via FunctionAlias and CanaryConfig CRDs, a workflow engine with event sourcing, and a pluggable state store (memory, SQLite, Postgres) for durable queues and key-value storage. Internal service-to-service communication is authenticated via HMAC signing. Observability is built on OpenTelemetry (traces, metrics, logs) and Prometheus. The CLI tool (`fission`) provides full lifecycle management and a GitOps-friendly spec system. The codebase is RFC-driven with formal verification (TLA+ specs) for critical subsystems like the workflow event log and queue lease protocol.
OpenFaaS is a serverless platform that provides an API gateway for deploying, managing, and invoking functions. The gateway handles HTTP routing to functions, collects and exposes Prometheus metrics, implements autoscaling based on invocation rates, includes a built-in AngularJS UI for function management, and supports alerting via integrations like Slack. It uses a plugin architecture for function providers (e.g., Kubernetes, Docker Swarm) via the faas-provider interface, allowing the core to remain decoupled from the underlying runtime. The system processes synchronous function invocations through a reverse proxy and asynchronous invocations via NATS queues.
This repository provides a Rust runtime for Vercel Serverless Functions, allowing developers to write Vercel Functions in Rust instead of JavaScript/TypeScript. It consists of several components: a TypeScript builder module that interfaces with Vercel's build system to compile Rust code, Rust crates implementing the runtime functionality (vercel_runtime, vercel_runtime_macro, vercel_runtime_router, vercel_axum), and examples showing usage patterns. The system works by compiling Rust functions during deployment and executing them in Vercel's serverless environment using AWS Lambda runtime under the hood. The architecture is modular with separate concerns: the builder handles compilation and packaging, the runtime manages request/response conversion and function execution, and specialized crates handle routing and framework adapters. Key features include route bundling to optimize cold starts by combining multiple routes into a single function, and support for various routing patterns (static, dynamic, catch-all). Importantly, the repository includes a deprecation notice stating that this community runtime is now deprecated in favor of the official Vercel Rust runtime implementation, and users should migrate to the official solution for continued support.