Distributed Job Scheduler & Workflow Engine

Schedule, orchestrate, and monitor background tasks with cron expressions, retry strategies, DAG workflows, and a real-time dashboard.

Features

Everything you need to manage background jobs at any scale.

🕑

Cron Scheduling

Standard 5-field and extended 6-field (with seconds) cron expressions. Presets like @daily, @hourly. Timezone support.

🔄

Retry & Backoff

Exponential, linear, fixed, and Fibonacci strategies. Full/equal/decorrelated jitter. Circuit breaker pattern.

📋

Priority Queues

Named queues with configurable priority, concurrency limits, rate limiting, and pause/resume control.

DAG Workflows

Multi-step directed acyclic graph execution with step dependencies, cycle detection, and failure strategies.

📦

Job Batches

Group related jobs into batches with progress tracking and callback jobs on completion.

🔒

Unique Jobs

Deduplication via unique keys. Prevent duplicate jobs from being enqueued simultaneously.

🚫

Dead Letter Queue

Permanently failed jobs are preserved for inspection, retry, or purging with configurable TTL.

📈

Dashboard

Real-time web dashboard with job browser, queue stats, worker monitoring, and schedule management.

🔗

Webhooks

HTTP webhooks fired on job completion, failure, or custom events. Retry with exponential backoff.

Quick Start

Get Koder Cron running in minutes.

Install

# Debian/Ubuntu
sudo apt install koder-cron

# From source
git clone https://flow.koder.dev/koder/koder-cron.git
cd koder-cron
make build
sudo make install

Configure

# /etc/koder-cron/default.toml
[server]
host = "0.0.0.0"
port = 9298

[database]
host = "localhost"
port = 5433
name = "kodercron"
user = "kodercron"
password = "KoderCron@2026"

[worker]
concurrency = 10
poll_interval = 1000

[scheduler]
tick_interval = 500

Run

# Start the server
kcron serve --config /etc/koder-cron/default.toml

# Create a schedule
kcron schedules create daily-report \
  --cron "0 9 * * *" \
  --job generate_report

# Enqueue a job
kcron run send_email --queue notifications --payload '{"to":"user@example.com"}'

# View status
kcron status

REST API

Full-featured REST API for programmatic access.

# List jobs
curl https://cron.koder.dev/api/v1/jobs

# Create a job
curl -X POST https://cron.koder.dev/api/v1/jobs \
  -H "Content-Type: application/json" \
  -d '{"name":"process_order","queue":"orders","payload":{"order_id":123}}'

# Create a schedule
curl -X POST https://cron.koder.dev/api/v1/schedules \
  -H "Content-Type: application/json" \
  -d '{"name":"hourly-sync","cron_expr":"0 * * * *","job_name":"sync_data"}'

# Create a workflow (DAG)
curl -X POST https://cron.koder.dev/api/v1/workflows \
  -H "Content-Type: application/json" \
  -d '{
    "name": "etl_pipeline",
    "steps": [
      {"name":"extract","job_name":"extract_data"},
      {"name":"transform","job_name":"transform_data","depends_on":["extract"]},
      {"name":"load","job_name":"load_data","depends_on":["transform"]}
    ]
  }'

# Health check
curl https://cron.koder.dev/health

# Prometheus metrics
curl https://cron.koder.dev/metrics

Architecture

Built with Koder Lang for reliability and performance.

Scheduler

Cron parser, tick loop, delayed job processor

Queue Manager

Named queues, priority routing, rate limiting

Worker Pool

Concurrent execution, heartbeat, graceful shutdown

Workflow Engine

DAG validation, step dispatch, failure strategies

Retry System

Backoff strategies, jitter, circuit breaker

REST API

JSON API, middleware chain, Prometheus metrics

Dashboard

Real-time SPA, job browser, queue stats

PostgreSQL

Job persistence, atomic dequeue, migrations