Home Product Docs Pricing AI Integrations Blog About 𝕏 @Datavor_ai ▶ YouTube
Get Started — Free →
8 MCP tools · cron + interval · dependency-aware

Scheduling that understands order.

Cron-style scheduled jobs with explicit dependency graphs. Jobs wait for the jobs they depend on. No more guessing whether the customers sync finished before the orders sync started. Replaces Airflow for the 80 % of teams who never needed a separate orchestration platform.

Nightly warehouse pipeline · DAG execution
clock 02:00:00 0/5 done
connect_dbs 00:00 · 2s customers full · 1 dep products full · 1 dep orders incremental · 2 deps refresh_bi query · 1 dep
⬡ IN THE WEB UI

The same DAG, in the product.

The animation above isn't a marketing mock-up of a concept — it's how the scheduler actually works. Here's the real dependency graph rendered live in the Datavor Web UI, showing four sync jobs and the three dependencies between them.

Datavor Web UI dependency graph showing Nightly customers sync and Nightly products sync feeding into Hourly orders sync, which feeds into Hourly order items sync — all success, 3 edges

Live at localhost:3000/scheduler — see the full dashboard on the Web UI page.

Why cron alone isn't enough.

The naive approach: schedule each sync at a fixed time and hope they don't collide. It works until your data grows, a sync runs long, and suddenly your reports are built on yesterday's half-loaded tables.

⬡ CRON BY TIME

Hope the timing works out.

You schedule each job at a guessed offset and pray the upstream one finished first:

02:00 customers sync (~25 min)
02:30 orders sync ← starts before customers done?
03:00 refresh BI ← built on stale orders?

One slow day — a big batch, a locked table, a network blip — and the 30-minute buffer isn't enough. Orders syncs against half-loaded customers. The BI refresh runs on incomplete data. No error fires. The numbers are just quietly wrong.

⬡ DATAVOR DAG

Declare order. Datavor enforces it.

You declare what depends on what. Datavor runs each job the moment its dependencies finish — not a guessed minute later:

02:00 customers + products (parallel)
⤷ both done →
02:26 orders (waits for both)
⤷ done →
02:38 refresh BI (waits for orders)

Independent jobs run in parallel. Dependent jobs wait. If customers takes 90 minutes one night, orders simply starts at minute 91 — correct, just later. The BI refresh never sees half-loaded data.

Schedule in plain English.

You never write cron expressions unless you want to. Tell your AI when, and it translates. Under the hood it's standard cron and interval syntax — visible and editable if you prefer.

What you say → when it runs
0 2 * * * "every night at 2am" → daily at 02:00
0 * * * * "every hour" → top of each hour
*/15 * * * * "every 15 minutes" → 4× per hour
0 9 * * 1 "Monday mornings" → weekly, Mon 09:00
@on customers "after the customers sync" → dependency, no clock
A full pipeline, one sentence
You: "Every night at 2am, sync customers and products fresh, then sync orders incrementally after both finish, then refresh the BI views."

Claude: Creates four jobs + three dependencies:
scheduler_create_job × 4
scheduler_add_dependency × 3
scheduler_show_graph

"Done. customers + products run in parallel at 2am, orders waits for both, BI refresh waits for orders. Here's the DAG."

When a job fails mid-DAG.

A dependency-aware scheduler's real test is what happens when something breaks. A failed upstream job shouldn't silently let downstream jobs run on bad data — but it also shouldn't bring down unrelated branches.

1. Job fails

The orders sync errors out — say the source DB was briefly unreachable. Datavor records the failure, captures the error in the ErrorLearner, and marks the job failed.

2. Downstream pauses

Anything depending on orders — the refresh_bi job — does not run. It moves to blocked state. Independent branches (a separate inventory sync) keep running normally. No false-positive reports.

3. Retry & resume

Datavor retries the failed job on a backoff schedule. On success, blocked downstream jobs automatically release and run. Or your AI surfaces it: get_suggestions → "orders failed 3×, here's the error — retry or investigate?"

Want to be told without asking? External Alerting fires a job_failure event to Slack or any webhook the instant a scheduled job fails.

The 8 MCP tools.

The scheduler is exposed as eight MCP tools. Create, control, and visualize jobs entirely through conversation. Full reference in the docs.

ToolPurpose
scheduler_create_jobSave a sync recipe as a scheduled job — cron expression or interval.
scheduler_list_jobsList all jobs with schedule, last run, last result, run count, dependencies.
scheduler_add_dependencyMake one job wait for another to finish before running. Builds the DAG.
scheduler_show_graphRender the full dependency graph — which jobs wait for which, execution order.
scheduler_run_jobRun a job once, immediately, outside its normal schedule.
scheduler_pause_jobPause a job — the daemon skips it without deleting it.
scheduler_resume_jobResume a previously paused job.
scheduler_delete_jobDelete a job permanently. Dependents are flagged, not silently orphaned.

Datavor vs the orchestrators.

Airflow and Dagster are powerful — and heavy. A separate service, a database, a scheduler process, a web server, DAGs written in Python. For full-blown data engineering, worth it. For "run these four syncs in order each night," wildly overkill.

Capability Datavor Airflow Dagster plain cron
Dependency-aware (DAGs)
Set up via natural language
Zero extra infrastructure
No Python DAG files to write
Built-in sync / CDC / transform pluginsplugins
Visual dependency graph
Runs locally, no account self-hostself-host
Learns from past failures

Datavor's scheduler isn't trying to replace Airflow for a 200-DAG data platform. It's for the team that's been gluing together cron jobs and praying — and deserves dependency-awareness without standing up a whole orchestration stack.

Stop guessing at cron offsets.

"Sync customers and products at 2am, then orders after both, then refresh BI." Datavor builds the DAG, runs it in order, and shows you the graph.