Skip to content
| Marketplace
Sign in
Azure DevOps>Azure Pipelines>Fast Synapse Deploy
Fast Synapse Deploy

Fast Synapse Deploy

Shawn McGough

|
73 installs
| (2) | Free
The fastest way to deploy Azure Synapse artifacts. With OIDC auth and proxy support.
Get it free

Fast Synapse Deploy

Overview

This action will deploy Azure Synapse artifacts, fast! It is designed to be a drop-in replacement for the aging Microsoft Synapse deployment task, with a focus on speed, reliability, and modern features.

Major Features

  • Zero Deployment (v3+): Skips the entire deployment when nothing has changed (via template hash check).
  • Selective Deployment (v3+): Deploys only new or modified artifacts—skips unchanged artifacts entirely.
  • Adaptive Speed Throttling (v2+): Automatically adjusts request rates, with options for safe, fast, or yolo speeds.
  • Latest Auth Support: Azure authentication managed outside of the task to always be up to date including Federated Credentials (OIDC).
  • Proxy Support: HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environment variables.
  • Large Template Support: Can be combined with validate from Microsoft task to overcome 20 MB size issue.

Comparison to Microsoft Synapse deployment task

Fast Synapse Deploy has significant speed improvements over the Microsoft Synapse deployment task, no matter the size of the workspace.

2,507 Artifacts

Deployment Method Time to Deploy Speedup
Microsoft Synapse deployment task 1h 17m 32s comically slow 🐌
Fast Synapse Deploy: Full Deployment 8m 41s 9x faster 🔥
Fast Synapse Deploy: Selective Deployment 1m 42s 46x faster 🚀
Fast Synapse Deploy: Zero Deployment* 2s 2326x faster 🤯

689 Artifacts

Deployment Method Time to Deploy Speedup
Microsoft Synapse deployment task 22m 28s so slow 🐢
Fast Synapse Deploy: Full Deployment 1m 17s 17x faster 🔥
Fast Synapse Deploy: Selective Deployment 50s 27x faster 🚀
Fast Synapse Deploy: Zero Deployment* 2s 674x faster 🤯

29 Artifacts

Deployment Method Time to Deploy Speedup
Microsoft Synapse deployment task 1m 50s slow 🐢
Fast Synapse Deploy: Full Deployment 46s 2x faster 🔥
Fast Synapse Deploy: Selective Deployment 28s 4x faster 🚀
Fast Synapse Deploy: Zero Deployment* 2s 55x faster 🤯

* To be clear, Zero Deployment detects no changes and skips the deployment entirely.

Zero Deployment / Hash Check (v3+)

⚠️ Requires task version 3 or later.

Zero deployment skips the entire deployment when nothing has changed. A SHA256 hash of your resolved template is stored in workspace tags and compared on subsequent runs.

Example Output (No Changes)

===========================================================================================
DEPLOYMENT HASH CHECK
===========================================================================================
  Current template hash:  A1B2C3D4E5F6789...
  Stored deployment hash: A1B2C3D4E5F6789...

  [OK] HASHES MATCH - Workspace is already up to date!
===========================================================================================

  ZERO DEPLOYMENT - No changes detected
  Completed in 1.3 seconds

When Deployment Runs

Scenario Deploys?
First deployment ✅ Yes
Template changed ✅ Yes
Parameters changed ✅ Yes
Nothing changed ❌ Skipped

Selective Deployment (v3+)

⚠️ Requires task version 3 or later.

Selective deployment compares your template against the workspace and deploys only what changed. Unchanged artifacts are skipped.

Dry run outputs the same analysis but exits without making any changes.

Example Output

=== Selective Deployment Analysis ===
Analysis completed in 45.2 seconds

  NEW artifacts:        12  (will deploy)
  CASCADED artifacts:   28  (will deploy, parent is NEW)
  MODIFIED artifacts:    3  (will deploy)
  UNCHANGED artifacts: 2448  (will SKIP)

Deploying 43 artifacts instead of 2491
Reduction: 98%

Throttle Configuration (v2+)

⚠️ Requires task version 2 or later.

TL;DR: Leave the Defaults...

For most users, no configuration is needed. FastSynapseDeploy automatically:

  • Adjusts request rates based on your deployment size
  • Backs off and retries when rate limits are hit
  • Recovers gracefully from 429 errors

Just run the task and let it handle throttling for you.

... Unless you have the Need for Speed

Many deployments can be deployed significantly faster by setting SYNAPSE_DEPLOYMENT_SPEED=yolo. However, there is a greater chance of hitting rate limits (429 errors). These limits are not documented and appear to vary based on time of day and region.

When to Change Settings

Scenario Recommended Action
Deployments work fine Do nothing. Keep defaults.
Frequent 429 errors / failures Set SYNAPSE_DEPLOYMENT_SPEED=safe
Want maximum speed Set SYNAPSE_DEPLOYMENT_SPEED=yolo
Need fine-grained control Set specific env variables (advanced)

Environment Variables

Variable Default Description
SYNAPSE_DEPLOYMENT_SPEED auto Controls throttling strategy: auto, fast, safe, or yolo
SYNAPSE_MAX_CONCURRENT_REQUESTS 25 Maximum parallel API requests (overrides speed-based calculation)
SYNAPSE_REQUESTS_PER_MINUTE 0 (auto) Hard RPM cap. 0 = automatic based on artifact count
SYNAPSE_COOLDOWN_SECONDS 150 Wait time (seconds) after a 429 error. Range: 30-900

Deployment Speeds

Speed Behavior When to Use
auto Balanced concurrency and RPM based on artifact count Default. Use this unless you have a reason not to.
safe Lower concurrency (15), conservative RPM limits Experiencing frequent 429s or deployment failures
fast Higher concurrency (37), 1.5× RPM limits Comfortable with occasional 429s for faster deploys
yolo Maximum concurrency (100), no RPM limit Testing, off-peak deployments, or intentionally pushing limits

If a 429 error occurs, the following happens automatically:

  1. Pauses all requests for the cooldown period
  2. Reduces concurrency by 25%
  3. Tightens RPM limits
  4. Retries the failed request

This means even if you start too aggressive, the tool will adapt.

Tip: A TooManyRequests (429) event means your deployment had to pause and resume — adding time to your overall deployment. Ideal deployments have zero 429 events. If you consistently see rate limit events, consider using SYNAPSE_DEPLOYMENT_SPEED=safe or lowering SYNAPSE_MAX_CONCURRENT_REQUESTS to avoid the delays caused by cooldown periods.

Combine with the Microsoft 'Validate' Action

This action can work in tandem with the Microsoft validate action, which is required to address a known issue with file size limit during publish. High level, you would first use validate to generate the required templates, then use this action to quickly deploy from those templates.

Pre-requisites

Requires Azure CLI installed on the agents.

Not Supported

  • Deploying ManagedPrivateEndpoints.
  • Deploying directly from branch other than publish.
    • However, can be combined with validate task (see note below) to achieve same result.

Review Me

Please consider leaving a review. I love to hear how it is helping with deployments! At the end of the log there is duration information:

Telemetry

This action collects anonymous, minimal usage telemetry via Azure Application Insights to help the maintainer understand adoption and prioritize improvements. No sensitive or identifying information is ever collected.

What is collected

Field Example Purpose
Runner OS Linux / Windows Know which platforms to prioritize
Action version v3 Track version adoption
SHA-256 hash of repository a1b2c3d4e5... Count unique repos (cannot be reversed to identify you)
Event type deploy / dry-run Understand feature usage
Deploy speed auto / fast / safe / yolo Understand throttle preferences
Feature flags selective: true Understand feature usage

What is never collected

  • Repository name, organization, or usernames
  • Azure subscription, resource group, or workspace names
  • Template contents, parameters, or file paths
  • Tokens, credentials, or IP addresses

Opting out

Set the disable-telemetry input to true

How it works

The telemetry configuration (App Insights connection string and enabled flag) is stored in .telemetry.json on the main branch. At runtime, the telemetry step fetches this config file so that the connection string can be rotated or telemetry can be disabled globally without publishing a new action version. If the config file is unreachable or enabled is false, telemetry is silently skipped.

Release Notes

v3.*

  • Selective Deployment: Deploy only new and modified artifacts, skip unchanged
  • Zero Deployment: Skip entire deployment when template hash matches
  • Dry-Run Mode: Preview changes without deploying

2.*

  • Major improvements to throttling / back-off
  • Additional env variables to enable more control (SYNAPSE_DEPLOYMENT_SPEED, SYNAPSE_MAX_CONCURRENT_REQUESTS, etc.)
  • More conservative defaults to prioritize success over raw speed
  • Less logging by default, verbose enabled by env var

1.*

  • Initial public release

Enterprise and Support Options

This extension is free for personal and commercial use under the terms in LICENSE. For enterprise features, including:

  • Source code access (under NDA)
  • Security audits and certifications
  • Custom modifications or integrations
  • Ongoing support SLAs (e.g., priority bug fixes, updates)

Contact Jojitech LLC at info@jojitech.com

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft