New to Kestra?
Use blueprints to kickstart your first workflows.
Run multiple Airbyte connection syncs in parallel with Kestra to ingest Salesforce, Google Analytics, and Facebook Ads data faster on one schedule.
id: airbyte-sync-parallel
namespace: company.team
tasks:
- id: data_ingestion
type: io.kestra.plugin.core.flow.Parallel
tasks:
- id: salesforce
type: io.kestra.plugin.airbyte.connections.Sync
connectionId: e3b1ce92-547c-436f-b1e8-23b6936c12ab
- id: google_analytics
type: io.kestra.plugin.airbyte.connections.Sync
connectionId: e3b1ce92-547c-436f-b1e8-23b6936c12cd
- id: facebook_ads
type: io.kestra.plugin.airbyte.connections.Sync
connectionId: e3b1ce92-547c-436f-b1e8-23b6936c12ef
pluginDefaults:
- type: io.kestra.plugin.airbyte.connections.Sync
values:
url: http://host.docker.internal:8000/
username: "{{ secret('AIRBYTE_USERNAME') }}"
password: "{{ secret('AIRBYTE_PASSWORD') }}"
Run several Airbyte ELT syncs at the same time instead of one after another. This blueprint triggers multiple Airbyte connections in parallel from a single Kestra flow, so Salesforce, Google Analytics, and Facebook Ads data all land in your warehouse on the same schedule without serializing each load. It solves the common bottleneck where independent source syncs queue behind each other and stretch the ingestion window far longer than it needs to be.
data_ingestion task of type io.kestra.plugin.core.flow.Parallel wraps three child tasks and launches them concurrently.io.kestra.plugin.airbyte.connections.Sync task (salesforce, google_analytics, facebook_ads) that triggers an Airbyte sync by its connectionId.pluginDefaults for io.kestra.plugin.airbyte.connections.Sync: the url of the Airbyte server plus username and password pulled from secrets.Parallel, they run together and the flow completes when the slowest one finishes.pluginDefaults, with no repetition per task.Airbyte's built-in scheduler runs each connection on its own independent timer, which cannot coordinate several connections as one unit, fan them out in parallel, or hand off cleanly to downstream transformation and quality steps. With Kestra you trigger all the syncs from one declarative YAML flow, run them in parallel, add retries on transient API failures, react to event triggers (flow, webhook, or schedule) rather than fixed per-connection timers, and keep full execution lineage across every sync in one place.
url points to http://host.docker.internal:8000/).connectionId values.AIRBYTE_USERNAME: username for the Airbyte server.AIRBYTE_PASSWORD: password for the Airbyte server.AIRBYTE_USERNAME and AIRBYTE_PASSWORD as secrets in Kestra.url in pluginDefaults to point at your Airbyte server.connectionId values with connection IDs from your Airbyte workspace.io.kestra.plugin.airbyte.connections.Sync tasks inside Parallel to cover more connections.concurrent property on io.kestra.plugin.core.flow.Parallel to cap how many syncs run at once.Schedule trigger to run ingestion on a cadence, or a flow trigger to chain it after upstream events.data_ingestion so models build as soon as the syncs complete.