Skip to content
WeftKitBeta
Serverless Persistence · WKP-1

Horizontally scalable
databases, without RDS.

Run any WeftKit database on ECS Fargate, Cloud Run, or ACI and let a single Lambda-class function own the durable state for all of them. No sidecar, no PVC, no vertical-only managed service. Pull, scale, recycle — your function handles the rest.

Deployment modes

One persistence story. Three ways to deploy.

Every database engine supports all three. Mix and match per engine; most teams pick serverless for production and disabled for local dev.

RECOMMENDED

Serverless

Engines push to a Lambda / Cloud Function / Azure Function / any HTTPS URL on a cron schedule and right before shutdown. Pull the latest snapshot on cold start. No sidecar, no PVC, runs on ECS Fargate, Cloud Run, or ACI.

  • Nothing always-on except your engine containers
  • Customer owns the function + object store + IAM
  • Horizontal scale — each replica writes its own subtree
  • Same contract for every database engine
LEGACY

Container

Long-running weftkit/persistence sidecar image mediates between the engine and a central store. Use this when you already run Kubernetes with PVCs and prefer an always-on bridge.

  • Always-on service on your cluster
  • Works great with PVCs and StatefulSets
  • Zero changes to customer infra per engine
  • Higher operational baseline than serverless
DEV ONLY

Disabled

State lives only in the container volume. Fine for local dev, CI, short-lived demos. Not for production on ephemeral runtimes.

  • Lowest latency — no network round-trips
  • State vanishes when the container recycles
  • Never use on Fargate / Cloud Run / ACI
  • Default for first-time pulls
How WKP-1 works

Four round-trips. Nothing in the critical path.

Your engine POSTs compressed deltas; your function stores them. On cold start, engine pulls the latest back. Traffic is HTTPS + HMAC-signed.

STEP 1

Engine boots

Engine checks its volume. If empty or restore-on-boot is set, it calls GET /restore on your endpoint.

STEP 2

Function returns latest

Your Lambda/Function lists the engine's subtree in your object store and streams the newest snapshot back.

STEP 3

Engine persists on schedule

Every cron tick (default 15 min), engine POSTs a compressed delta to your endpoint. Your function stores it.

STEP 4

Engine flushes on shutdown

On SIGTERM, engine pushes a final snapshot within a 30 s budget, then exits. Pod can now safely recycle.

Coverage

Which images support WKP-1

Every database engine supports it. Stateless routers and coordinators don't need it — they have nothing to persist.

SUPPORTS WKP-1
weftkit/relationalStateful — SQL database
weftkit/documentStateful — document store
weftkit/graphStateful — graph database
weftkit/inmemoryStateful — snapshots + WAL
weftkit/keyvalueStateful — KV store
weftkit/vectorStateful — ANN index
weftkit/markdownStateful — content store
weftkit/filestoreStateful — object store
NOT APPLICABLE
weftkit/gatewayStateless router
weftkit/poolStateless connection proxy
weftkit/discoveryCluster state rebuilds from heartbeats
weftkit/playgroundWeb UI only
Reference functions

Deploy in one command on your cloud

Drop-in function source for each major target. All four implement the same three endpoints per WKP-1.

AWS Lambda + S3
View source
GCP Cloud Function + GCS
View source
Azure Function + Blob
View source
Self-hosted Node + any S3-compatible
View source

Build your stack

Pick your engines in the Compose Builder and toggle Serverless Persistence. A ready-to-run docker-compose.yml with the right WEFTKIT_PERSIST_* env vars drops out the other side.