For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
      • AstroFully-managed data operations, powered by Apache Airflow.
      • Astro Private CloudRun Airflow-as-a-service in your environment.
      • Professional ServicesExpert Airflow services for your enterprise's success.
    • Tools
      • Cosmos
      • Orbiter
      • CLI
      • AI SDK
      • Agents
      • Blueprint
      • UpdatesThe State of Airflow 2026See the insights from over 5,800 data practitioners in the full report. Download Now ➔
  • Customers
  • Docs
    • Insights
      • Blog
      • Webinars
      • Resource Library
      • Events
    • Education
      • Academy
      • What is Airflow?
  • Pricing
Get Started Free
    • Overview
      • Create a Deployment
      • Execution mode
        • Overview
        • Shared responsibility model
        • Get started
          • Configure Remote Execution Agents
          • Configure secrets backend
          • Configure XCom backend
          • Configure DAG sources
        • Deploy Remote Execution project
        • Deploy a dbt project
        • Helm chart reference
      • Worker queues
      • Environment variables
      • Secrets backend
    • Book Office Hours

Product

  • Platform Overview
  • Astro
  • Astro Observe
  • Astro Private Cloud
  • Security & Trust
  • Pricing

Tools & Services

  • Cosmos
  • Docs
  • Professional Services
  • Product Updates

Use Cases

  • AI Ops
  • Data Observability
  • ETL/ELT
  • ML Ops
  • Operational Analytics
  • All Use Cases

Industries

  • Financial Services
  • Gaming
  • Retail
  • Manufacturing
  • Healthcare
  • All Industries

Resources

  • Academy
  • eBooks & Guides
  • Blog
  • Webinars
  • Events
  • The Data Flowcast Podcast
  • All Resources

Airflow

  • What is Airflow
  • Airflow on Astro
  • Airflow 3.0
  • Airflow Upgrades
  • Airflow Use Cases
  • Airflow 2.x End of Life

Company

  • Our Story
  • Customers
  • Newsroom
  • Careers
  • Contact

Support

  • Knowledge Base
  • Status
  • Contact Support
GitHubYouTubeLinkedInx
  • Legal
  • Privacy
  • Terms of Service
  • Consent Preferences

  • Do Not Sell or Share My Personal information
  • Limit the Use Of My Sensitive Personal Information

Apache Airflow®, Airflow, and the Airflow logo are trademarks of the Apache Software Foundation. Copyright © Astronomer 2026. All rights reserved.

LogoLogo
On this page
  • Overview
  • Prerequisites
  • Configure XCom backend
  • Configuration options
  • Verify configuration
  • Next steps
  • Related documentation
Manage DeploymentsRemote ExecutionCore configuration

Configure XCom backend

Edit this page
Built with

Remote Execution Agents require a custom XCom backend to pass data between tasks. This guide covers configuring AWS S3, Azure Blob Storage, or GCP Cloud Storage as your XCom backend.

Overview

XCom (cross-communication) enables data exchange between Airflow tasks. By default, Airflow stores XCom values in the metadata database. With Remote Execution, the metadata database resides in the Astro orchestration plane while agents execute tasks in your infrastructure.

A custom XCom backend stores XCom data in object storage accessible to all agents in your execution plane. This allows tasks running on different agents to share data through a common storage location.

XCom limitations with callbacks

In Airflow 3, XCom values are stored externally in storage backends. The database only holds the location of each XCom value, and retrieving the actual XCom data requires a call to the execution API with a valid task token.

Currently, callbacks do not receive a task token, so they cannot retrieve XCom values from external backends. As a result, using XCom in callbacks is not supported at this time when using Remote Execution with custom XCom backends.

XCom support in triggers

XCom triggerer support is enabled with Agent Client 1.5.0+. Triggers running on the agent can retrieve and push XCom values when using a compatible client version.

Prerequisites

  • Remote Execution Agent installed and registered
  • Object storage bucket in your cloud provider
  • Workload identity configured for your Kubernetes cluster (IRSA for AWS, Managed Identity for Azure, Workload Identity for GCP)
  • Required Python packages installed in your agent image (see cloud-specific sections below)

Configure XCom backend

All XCom backend configurations use the XComObjectStorageBackend class from the Common IO provider. Choose your cloud provider below for specific configuration instructions.

AWS S3
Azure Blob Storage
GCP Cloud Storage

Prerequisites

The Remote Execution Agent image must include these Python packages:

  • apache-airflow-providers-amazon
  • apache-airflow-providers-common-io
  • s3fs

Create S3 bucket

Create an S3 bucket for XCom storage with the following recommended settings:

  • Versioning: Enable for data recovery
  • Encryption: Enable server-side encryption (SSE-S3 or SSE-KMS)
  • Lifecycle policy: Configure automatic deletion of old XCom objects

Configure IAM role

Create an IAM role with permissions to read and write to your XCom bucket. Attach this policy to the role:

1{
2 "Version": "2012-10-17",
3 "Statement": [
4 {
5 "Effect": "Allow",
6 "Action": [
7 "s3:GetObject",
8 "s3:PutObject",
9 "s3:DeleteObject",
10 "s3:ListBucket"
11 ],
12 "Resource": [
13 "arn:aws:s3:::your-xcom-bucket",
14 "arn:aws:s3:::your-xcom-bucket/*"
15 ]
16 }
17 ]
18}

Configure the trust relationship to allow your Kubernetes service accounts to assume the role. See AWS IRSA documentation for details.

Update Helm values

Update your agent’s values.yaml file with the XCom backend configuration:

1xcomBackend: "airflow.providers.common.io.xcom.backend.XComObjectStorageBackend"
2
3commonEnv:
4 - name: AIRFLOW__COMMON_IO__XCOM_OBJECTSTORAGE_PATH
5 value: "s3://<connection-id>@<bucket-name>/<path-to-xcom>"
6 - name: AIRFLOW__COMMON_IO__XCOM_OBJECTSTORAGE_THRESHOLD
7 value: "0" # Always store XComs in object storage
8 - name: AIRFLOW__COMMON_IO__XCOM_OBJECTSTORAGE_COMPRESSION
9 value: "zip"
10
11annotations:
12 eks.amazonaws.com/role-arn: arn:aws:iam::<AWS_ACCOUNT_ID>:role/<IAM_ROLE_NAME>

Replace:

  • <connection-id>: Airflow connection ID for S3 (use aws_default or create a custom connection)
  • <bucket-name>: Your S3 bucket name
  • <path-to-xcom>: Path prefix for XCom objects (e.g., xcom)
  • <AWS_ACCOUNT_ID>: Your AWS account ID
  • <IAM_ROLE_NAME>: IAM role name created above

Apply configuration

Update your Helm release:

$helm upgrade astro-agent astronomer/astro-remote-execution-agent -f values.yaml

Configuration options

XCom path format

The AIRFLOW__COMMON_IO__XCOM_OBJECTSTORAGE_PATH parameter defines where XCom objects are stored:

<protocol>://<connection-id>@<bucket-or-container>/<path-prefix>
  • protocol: s3:// for AWS, abfs:// for Azure, gs:// for GCP
  • connection-id: Airflow connection ID for authentication
  • bucket-or-container: Storage bucket or container name
  • path-prefix: Optional path prefix for organizing XCom objects

XCom threshold

The AIRFLOW__COMMON_IO__XCOM_OBJECTSTORAGE_THRESHOLD parameter controls when XCom values are stored in object storage:

  • 0: Always store in object storage (recommended for Remote Execution)
  • >0: Store in object storage only if value size exceeds threshold in bytes

Set this to 0 to ensure all XCom values are accessible to remote agents.

Compression

The AIRFLOW__COMMON_IO__XCOM_OBJECTSTORAGE_COMPRESSION parameter controls compression:

  • zip: Compress XCom values (recommended)
  • None: No compression

Compression reduces storage costs and transfer time for large XCom values.

Verify configuration

After applying your configuration, verify XCom backend functionality:

  1. Trigger a test DAG that uses XCom to pass data between tasks
  2. Check that tasks complete successfully
  3. Verify XCom objects appear in your storage bucket
  4. Review agent logs for any XCom-related errors

Next steps

After configuring XCom backend:

  • Configure secrets backend - Store Airflow connections and variables securely
  • Configure dag sources - Define how agents access DAG code
  • Configure logging - Export task logs to external platforms

Related documentation

  • XCom backend strategies
  • Remote Execution overview
  • Helm chart configuration reference