Getting Started with Declarative Orchestration
See how Kestra can simplify your workflows—and scale beyond legacy batch scheduling.
Control-M centralizes batch workload scheduling behind an ops team. Kestra lets any engineer build and ship workflows in YAML. No per-job licensing, no tickets.
Declarative YAML workflows versioned in Git, executed in isolated containers, deployed through CI/CD. Existing scripts, ETL jobs, and load plans run as-is. Any engineer can build and ship workflows without filing a ticket. No ops team in the critical path.
Enterprise batch scheduler built around a central Control-M/Server, managed by an operations team. Jobs are defined in a GUI or JSON, scheduled through the server, and executed by agents deployed on target hosts. Changes flow through the ops team.
Control-M requires installing the Enterprise Manager, a Control-M/Server, and agents on each target host, then configuring connections between them. Kestra's single Docker Compose command stands up everything in a format that's already production-shaped.
curl -o docker-compose.yml \https://raw.githubusercontent.com/kestra-io/kestra/develop/docker-compose.ymldocker compose up
# Open localhost:8080# Pick a Blueprint, run it. Done.Download the Docker Compose file, spin it up, and you're ready (database and config included). Open the UI, pick a Blueprint, run it.
# 1. Install Control-M/Enterprise Manager (central console)# 2. Install Control-M/Server (scheduling engine + database)# 3. Install Control-M/Agent on each target host# 4. Configure agent-server connectivity# 5. Set up security policies and user roles# 6. Define jobs via GUI or Jobs-as-Code JSON
# Or use Control-M Workbench (free sandbox) for local devdocker run -dt -p 8443:8443 controlm/workbench:latestProduction deployment requires installing Control-M/Enterprise Manager, Control-M/Server, and Control-M/Agents on each target host. Configuration involves database setup, agent-server connectivity, and security policies. The free Workbench sandbox helps with job authoring, but production infrastructure takes significant setup.
YAML is readable on day 1. Our docs are embedded in the UI for easy reference, the AI Copilot writes workflows for you, or start with our library of Blueprints. Engineers deploy through Git, same as application code.
Jobs-as-Code uses JSON with Control-M-specific properties like RunAs, Host, and Application. Job definitions are authored in the GUI or JSON, then deployed through the Automation API. Modifying orchestration logic typically requires the operations team.
Orchestrate data pipelines, infrastructure operations, business processes, and AI workflows from a single open-source platform. Event-driven at its core, with native triggers for S3, webhooks, Kafka, database changes, and API events. 1200+ open-source plugins.
Enterprise batch workload automation across mainframe, distributed, and cloud environments. Strong legacy system coverage with connectors for SAP, mainframe, and managed file transfer. Proprietary platform with per-job licensing and agent-based architecture.
| | | |
|---|---|---|
| Workflow definition | Declarative YAML | GUI or JSON (Jobs-as-Code) |
| Architecture | Event-driven at core | Schedule-first (event-driven features added in recent SaaS release) |
| Deployment model | Single Docker Compose (self-hosted or Kestra Cloud) | Enterprise Manager + Server + Agents on each host |
| Licensing | Open source (Enterprise tier available) | Proprietary (per-job licensing with execution caps) |
| Languages supported | Any (Python, SQL, R, Bash, Go, Node.js) | Shell scripts, Python, SQL via job types |
| Self-service for developers | Engineers build and deploy via Git | Ops-mediated (Workbench available for dev/test) |
| Self-service for non-engineers | Kestra Apps | GUI for monitoring, not self-service triggers |
| Multi-tenancy | Namespace isolation + RBAC out-of-box | Role-based access (multi-tenancy requires complex configuration) |
| Mainframe support | Not a primary use case | ✓ Native mainframe job scheduling |
| Managed file transfer | Via plugins (S3, GCS, SFTP) | ✓ Native MFT with SFTP, FTP/SSL, AS2, PGP |
| Time to production | Minutes (Docker Compose) | Days to weeks (multi-component install) |
Control-M requires installing and maintaining agents on every target host, with changes routed through a central operations team. Kestra runs tasks in isolated Docker containers. Engineers deploy through Git and CI/CD, the same way they deploy application code.
Kestra's open-source core is free with 1200+ plugins. Enterprise features (RBAC, SSO, audit logs) are available without per-job metering. Control-M's proprietary licensing uses per-job metering with execution volume caps.
Kestra was built event-driven from the start: webhooks, S3 uploads, Kafka messages, database changes, and API events are first-class YAML triggers. Unlimited event-driven workflows in open source. Control-M added event-driven capabilities in its January 2026 SaaS release (26.01), but the core architecture remains schedule-first.
Find answers to your questions right here, and don't hesitate to Contact us if you couldn't find what you're looking for.
See how Kestra can simplify your workflows—and scale beyond legacy batch scheduling.