Analytics Data Factory premium field-manual-complete field-manual-complete

Tumbling window trigger

A tumbling window trigger is Data Factory’s stateful scheduler for fixed processing periods. Instead of simply firing every hour and forgetting what happened, it tracks windows such as 1:00-2:00 and 2:00-3:00. Each window is separate, non-overlapping, and tied to one pipeline. That makes it useful for backfills, reruns, dependencies, and pipelines where every time slice must be processed exactly once or at least visibly retried. It is heavier than a normal schedule trigger because it manages state around each window.

Aliases
TumblingWindowTrigger, ADF tumbling window trigger, Data Factory tumbling window trigger, stateful window trigger
Difficulty
fundamentals
CLI mappings
5
Last verified
2026-05-28

Microsoft Learn

A tumbling window trigger in Azure Data Factory fires at a recurring interval from a configured start time while retaining state. Microsoft Learn describes it as a fixed, non-overlapping window trigger with one-to-one pipeline association and optional dependencies between windows.

Microsoft Learn: Create a trigger that runs a pipeline on a tumbling window2026-05-28

Technical context

In Azure architecture, a tumbling window trigger belongs to Data Factory and Synapse pipeline orchestration. The trigger defines frequency, interval, start time, optional end time, delay, max concurrency, retry policy, and dependencies. It has a one-to-one association with a pipeline and can pass windowStartTime or windowEndTime expressions as parameters. The trigger run state reflects the associated pipeline run, so monitoring ties scheduling state to execution outcome. It interacts with integration runtime capacity, pipeline idempotency, logging, and deployment automation.

Why it matters

Tumbling window triggers matter when data work must be complete across every fixed time slice. A schedule trigger can start work on a clock, but it does not provide the same gap-free, stateful model for backfill and dependency handling. When finance, telemetry, manufacturing, or compliance loads must process every hour or day, missed windows become business risk. A tumbling window trigger gives operators a way to rerun failed windows, wait for upstream windows, and control concurrency. It also creates clearer operational evidence: this window succeeded, failed, waited, or was rerun for a specific reason. This reduces dispute during recovery and closeout reviews.

Where you see it

Signals, screens, and Azure surfaces where this term usually becomes operational.

Signal 01

In Data Factory trigger JSON, type is TumblingWindowTrigger with frequency, interval, startTime, delay, maxConcurrency, retryPolicy, dependsOn, and pipeline reference. during deployment review and incident triage.

Signal 02

In the portal Monitor experience, trigger runs show window boundaries, runtime state, associated pipeline run, retry behavior, and dependency wait symptoms. during window troubleshooting sessions.

Signal 03

In pipeline expressions, windowStartTime and windowEndTime values often appear as parameters used to partition source reads, writes, and audit records. for deterministic partition processing audits.

When this becomes relevant

Specific situations where this term helps solve real Azure design, operations, migration, security, reliability, cost, or governance problems.

  • Process hourly or daily partitions where every time window must succeed, fail visibly, or be rerun deliberately.
  • Backfill historical data ranges without manually launching dozens of date-parameterized pipeline runs.
  • Coordinate dependent pipelines so a downstream window waits for an upstream tumbling window to finish successfully.
  • Control catch-up pressure after an outage using max concurrency and retry policy instead of uncontrolled schedules.
  • Pass window boundaries into pipelines so reads, writes, and audit records align to exact processing intervals.

Real-world case studies

Different enterprise-style examples that show the term being used to hit measurable objectives.

Case study 01

Rail operator closes fare-settlement gaps

Scenario, objectives, solution, measured impact, and takeaway.

Scenario

A rail operator settled fare transactions every hour, but outages at station gateways left missing periods that finance discovered days later. Manual reruns produced duplicate settlement rows.

Business/Technical Objectives
  • Process every hourly settlement window with visible success or failure state.
  • Backfill missed gateway periods without duplicating already settled transactions.
  • Limit catch-up concurrency to protect the settlement database.
  • Give finance a window-level audit trail for month-end close.
Solution Using Tumbling window trigger

The data platform team replaced a simple schedule with a tumbling window trigger tied to the settlement pipeline. Each window passed windowStartTime and windowEndTime into source queries and sink partition keys. The pipeline checked an idempotency table before writing final settlement rows. maxConcurrency was set to three after database load testing, and retry policy handled brief gateway delays. CLI deployment checks exported the trigger JSON, verified TumblingWindowTrigger type, and captured runtimeState after each release. Monitor workbooks joined trigger run state, pipeline run state, and settlement row counts by window boundary.

Results & Business Impact
  • Unexplained settlement gaps dropped from 19 per month to two source-data exceptions.
  • Duplicate settlement rows fell 96% after window parameters and idempotency checks were enforced.
  • Backfill after gateway outages completed in 74 minutes instead of the previous six-hour manual process.
  • Finance closed month-end one business day faster because each hourly window had auditable state.
Key Takeaway for Glossary Readers

A tumbling window trigger is powerful when every time slice must be tracked, replayed, and proven to the business.

Case study 02

Pharmaceutical plant coordinates batch-quality pipelines

Scenario, objectives, solution, measured impact, and takeaway.

Scenario

A pharmaceutical plant analyzed equipment readings for regulated batch production. Downstream quality scoring sometimes ran before upstream cleansing completed, creating inconsistent release reports.

Business/Technical Objectives
  • Ensure each quality-scoring window waited for the matching cleansing window.
  • Create dependable rerun behavior for failed equipment-data periods.
  • Keep regulated reports aligned to approved production intervals.
  • Reduce manual coordination between process engineers and data engineers.
Solution Using Tumbling window trigger

Architects implemented tumbling window triggers for both cleansing and quality-scoring pipelines. The scoring trigger used dependency settings so a scoring window waited until the corresponding cleansing window succeeded. Pipeline parameters carried exact production window boundaries into curated tables and report metadata. retryPolicy handled transient file delays, while maxConcurrency prevented multiple batches from competing for the same database load slots. CLI checks showed trigger dependencies, start times, and runtime state during validation. Operators monitored waiting windows separately from failed windows, which stopped teams from restarting healthy pipelines unnecessarily.

Results & Business Impact
  • Premature scoring runs were eliminated across 420 production windows in the first quarter.
  • Manual coordination messages between teams dropped 71% during batch release days.
  • Failed equipment-data windows were rerun with no duplicate report records in audited samples.
  • Quality report delivery improved from 89% on-time to 98.5% on-time.
Key Takeaway for Glossary Readers

Tumbling window trigger dependencies make time-sliced pipelines safer when downstream work must wait for upstream completion.

Case study 03

Ad-tech platform controls campaign spend backfills

Scenario, objectives, solution, measured impact, and takeaway.

Scenario

An ad-tech platform recalculated campaign spend from hourly clickstream partitions. After provider outages, engineers launched large manual backfills that overloaded the warehouse and delayed customer dashboards.

Business/Technical Objectives
  • Backfill missed hourly spend windows in a controlled, observable way.
  • Prevent catch-up work from starving current-hour dashboard refreshes.
  • Tie every recalculation to exact window boundaries for customer dispute review.
  • Reduce emergency warehouse scale-ups during provider outages.
Solution Using Tumbling window trigger

The platform moved recalculation orchestration to a tumbling window trigger with maxConcurrency tuned to the warehouse load profile. The pipeline used windowStartTime and windowEndTime to read a single clickstream partition and write a replacement aggregate using merge logic. Operators paused the trigger during provider instability, then resumed it with a planned backfill range once source data stabilized. CLI commands captured trigger state, interval, concurrency, and pipeline reference before resuming. Alerts separated backlog size, failed windows, and long-running pipeline activities so support could explain dashboard delay honestly.

Results & Business Impact
  • Provider-outage backfills completed 52% faster while keeping warehouse CPU below the agreed 80% ceiling.
  • Customer dashboard delay during catch-up fell from 4.8 hours to 1.6 hours.
  • Emergency warehouse scale-up hours dropped 44% in the next two outage events.
  • Dispute investigations gained exact hour-level recalculation records for every affected campaign.
Key Takeaway for Glossary Readers

Tumbling window triggers make backfill speed a controlled architecture choice rather than a manual fire drill.

Why use Azure CLI for this?

Azure CLI is useful for tumbling window triggers because correctness depends on JSON details that are easy to overlook in the portal. I want command-line evidence for type, runtimeState, frequency, interval, startTime, delay, maxConcurrency, retryPolicy, dependsOn, and the pipeline reference before enabling production. CLI also helps during incidents when a trigger is started but a specific window is waiting or failing. Engineers can export trigger definitions, compare environments, stop the trigger safely, and capture before-and-after state. For this feature, CLI is not just automation; it is a guardrail against silent scheduling mistakes. especially during backfill incidents, audits, and release reviews.

CLI use cases

  • Show tumbling window trigger JSON and verify frequency, interval, start time, delay, concurrency, and dependency settings.
  • Start or stop a tumbling window trigger during approved maintenance and capture evidence for the change record.
  • Export trigger definitions and compare production with source-controlled templates before publishing orchestration changes.
  • Query trigger and pipeline run history for a specific time range to identify waiting, failed, or retried windows.
  • Validate that the pipeline reference and window parameters match the partitioning strategy used by downstream tables.

Before you run CLI

  • Confirm tenant, subscription, resource group, factory name, trigger name, and the pipeline associated with the trigger.
  • Check whether the trigger is already Started; updates or stops can affect active and future processing windows.
  • Review startTime, endTime, delay, maxConcurrency, retryPolicy, and dependsOn before enabling historical backfill.
  • Confirm the pipeline is idempotent for windowStartTime and windowEndTime parameters before rerunning failed windows.
  • Estimate cost and downstream capacity if changing interval or concurrency increases simultaneous pipeline runs.

What output tells you

  • typeProperties identify the window size, start boundary, delay, retry settings, concurrency, and dependency model.
  • runtimeState shows whether the trigger is currently Started, Stopped, or Disabled for future windows.
  • pipeline reference confirms the singular pipeline that the tumbling window trigger can run.
  • trigger run history shows each window’s state and whether the related pipeline succeeded, failed, waited, or was rerun.
  • parameters reveal how windowStartTime and windowEndTime values are passed into source reads, sinks, and audit logic.

Mapped Azure CLI commands

Azure Data Factory tumbling window trigger CLI commands

direct
az datafactory trigger show --factory-name <factory-name> --resource-group <resource-group> --name <trigger-name>
az datafactory triggerdiscoverAnalytics
az datafactory trigger create --factory-name <factory-name> --resource-group <resource-group> --name <trigger-name> --properties @tumbling-trigger.json
az datafactory triggerprovisionAnalytics
az datafactory trigger start --factory-name <factory-name> --resource-group <resource-group> --name <trigger-name>
az datafactory triggeroperateAnalytics
az datafactory trigger stop --factory-name <factory-name> --resource-group <resource-group> --name <trigger-name>
az datafactory triggeroperateAnalytics
az datafactory pipeline-run query-by-factory --factory-name <factory-name> --resource-group <resource-group> --last-updated-after <utc-start> --last-updated-before <utc-end>
az datafactory pipeline-rundiscoverAnalytics

Architecture context

As an Azure architect, I use tumbling window triggers for deterministic batch slices, not casual recurrence. They fit workloads where every period matters: hourly settlement, daily data warehouse partitions, device telemetry windows, or partner file windows. The design must include idempotent pipeline logic, a control table or partition strategy, max concurrency limits, retry policy, and dependency rules. A window trigger should not be enabled until the team knows how to replay a failed window, pause future windows, and verify downstream completion. The architecture is successful when operators can explain each window’s state without guessing from calendar time. Document ownership.

Security

Security impact is indirect but important. The trigger does not hold secrets by itself, yet it launches a pipeline that can read, transform, and write sensitive data repeatedly. RBAC should limit who can create, start, stop, or modify the trigger because changing max concurrency, parameters, or dependencies can run privileged work at the wrong time. Pipeline parameters may include paths or partition identifiers that should not expose sensitive customer information in logs. Identities used by linked services must remain least privilege. A malicious or careless trigger change can create unauthorized processing or data movement. during urgent backfills and production releases.

Cost

Cost impact comes from window frequency, backfill range, retry count, max concurrency, pipeline activities, integration runtime sizing, and diagnostic logs. A one-minute window can create thousands of pipeline runs per day; a broad backfill can launch months of historical work. Retries and dependencies may preserve reliability but also multiply activity charges and downstream load. Cost review should estimate normal run count, worst-case catch-up volume, average activity duration, self-hosted or Azure integration runtime usage, and output storage growth. The trigger’s maxConcurrency setting is both a reliability and cost control. Cost estimates should be reviewed before long historical backfills start running.

Reliability

Reliability is the main reason to use this trigger type. Tumbling window triggers retain state, support backfill, can wait on dependencies, and expose whether a window succeeded, failed, or is waiting. That makes them stronger than simple schedules for gap-sensitive workloads. The design still needs idempotent pipelines, safe reruns, retry policy, capacity planning, and clear handling for late source data. Max concurrency prevents catch-up from overwhelming downstream systems, but setting it too low can prolong recovery. Operators should monitor trigger runs, pipeline runs, dependency waits, and retry exhaustion as one reliability surface. These signals reduce guesswork during outage recovery work.

Performance

Performance depends on how quickly each triggered pipeline can finish relative to the next window. If a one-hour window routinely takes ninety minutes, backlog grows even when every run succeeds. maxConcurrency can help catch up but may saturate sources, integration runtimes, or sinks. Delay settings can improve data completeness but increase freshness lag. Dependencies can serialize work across pipelines and create visible waiting time. Operators should watch window start, scheduled time, actual start, pipeline duration, backlog count, retry duration, and integration runtime utilization. A well-sized tumbling trigger closes windows before business decisions need the output. during recovery events and backfills.

Operations

Operators manage tumbling window triggers through JSON definitions, source control, CLI, portal monitor views, and runbooks. They inspect runtimeState, trigger run history, pipeline run state, window boundaries, retry count, maxConcurrency, and dependency references. During incidents, they determine whether the problem is a waiting dependency, failed pipeline, stopped trigger, exhausted retries, or lack of source data. Maintenance procedures should say how to stop the trigger, resume it, rerun a window, and verify downstream partitions. This trigger turns scheduling into an observable queue of time windows, so operations discipline matters. Good notes prevent repeated reruns from becoming another production incident during handoff.

Common mistakes

  • Using a schedule trigger for gap-sensitive backfill work that really needs stateful tumbling window tracking.
  • Setting maxConcurrency high enough to overload databases, integration runtimes, warehouses, or downstream APIs during catch-up.
  • Forgetting that a tumbling window trigger has a one-to-one relationship with a pipeline.
  • Rerunning failed windows without idempotent pipeline logic, creating duplicate partitions or repeated downstream messages.
  • Misunderstanding delay and dependency settings, then treating an intentionally waiting window as a platform outage.