ProductDocsArchitectureBlogGitHubGitHubGet Started
Available

Deployment

Embedded, single-node, and Kubernetes deployment options.

Embedded Mode

Run Krishiv entirely in-process. No external services required. Best for development, testing, and embedding in an application.

let session = Session::embedded().await?;
session = ks.Session.embedded()

Single-Node Daemon

Runs a coordinator + one executor on a single host. Requires the single-node feature. Provides restart-durable state via RocksDB and local disk shuffle.

cargo build -p krishiv --features single-node --release

# Start the daemon
./target/release/krishiv server start   --coordinator-addr 0.0.0.0:50051   --durability single-node-durable   --checkpoint-dir /var/krishiv/checkpoints

# Connect from a client
export KRISHIV_COORDINATOR=http://localhost:50051

Kubernetes Deployment

Requires the k8s feature. A Kubernetes operator manages KrishivCluster CRDs and spawns coordinator and executor pods.

cargo build -p krishiv --features k8s --release

# Apply CRD and operator
kubectl apply -f deploy/krishiv-crd.yaml
kubectl apply -f deploy/krishiv-operator.yaml

# Create a cluster
kubectl apply -f - <<EOF
apiVersion: krishiv.io/v1
kind: KrishivCluster
metadata:
  name: my-cluster
spec:
  coordinators: 1
  executors: 4
  durabilityProfile: distributed-durable
  checkpointStorage:
    uri: s3://my-bucket/checkpoints/
  shuffleStorage:
    uri: s3://my-bucket/shuffle/
EOF

Key Environment Variables

VariableDescription
KRISHIV_COORDINATORFlight endpoint for remote client sessions.
KRISHIV_DURABILITY_PROFILEdev-local | single-node-durable | distributed-durable
KRISHIV_CHECKPOINT_DIRCheckpoint directory path (local or object-store URI).
KRISHIV_SHUFFLE_DIRLocal shuffle spill directory.
KRISHIV_MAX_PARALLELISMTarget task parallelism (default: CPU count).
KRISHIV_LOGLog filter string (e.g. info,krishiv_scheduler=debug).
KRISHIV_METRICS_PORTPrometheus metrics scrape port.

Health and Metrics

  • GET /healthz — coordinator liveness check.
  • GET /readyz — coordinator readiness check.
  • GET /metrics — Prometheus metrics endpoint (if KRISHIV_METRICS_PORT is set).