Build, review, and operate data workflows.

Start with the responsibility you own.

For data engineers

What changed, and where did the run fail? Keep definitions in Git, prepare data with SQL, and inspect the version and step evidence from a run. Declared contracts check expected fields and types.

Configuration needs knowledge of your systems, permissions and data models. Use the UI and CLI to inspect and operate your workflows.

For engineering leaders

Can someone else understand and maintain this integration? Review changes in Git and use recorded run evidence to discuss what executed and what needs investigation.

Evaluate one recurring workflow with your team before committing to a broader scope. Braidplane Alpha is for test data and non-production systems.

See a workflow and its evidence

For business teams

Which records should agree? Which supplier offers are comparable? Start with the decision and result you need, then involve a technical colleague to configure the connections and workflow.

These examples explain the job before the setup. Share the example link with the person responsible for your systems.

Explore supplier price comparison · Explore settlement review

Technical detail

Workflows are pipelines with source, transform, and sink steps. Git holds the reviewable definition; SQL prepares data, and explicit input and output contracts check declared fields and types between steps. Configuration requires knowledge of your systems and data.

Developer walkthrough

Validate, run, and verify the synthetic PostgreSQL-to-S3 reporting workflow in 30 seconds.

Synthetic workflow recording 00:00
One pipeline.
The complete run.
Loading recorded CLI walkthrough...
00:00
Loading local .cast

See how the pipeline is defined.

Two source reads, one SQL join, and one JSON write, with explicit data checks between steps.

  • SourceRead orders and customers from the selected connections.
  • TransformNative SQL maps the two row sets into joined order records.
  • SinkWrite joined orders to a JSON file in the destination.
metadata:   slug: golden-path-joined-orders  name: Golden Path Joined Orderssteps:   - kind: query    slug: fetch-paid-orders    name: Fetch paid orders    query:       data_source_ref: golden-path-orders-postgres      operation_type: sql      operation_ref: golden-path-orders      output_contract:         name: golden-path-paid-orders        representation: rows        fields:           - name: order_id            type: string            required: true          - name: customer_slug            type: string            required: true          - name: order_total_cents            type: integer            required: true          - name: discount_cents            type: integer            required: true          - name: net_total_cents            type: integer            required: true          - name: placed_at_utc            type: string            required: true  - kind: query    slug: fetch-active-customers    name: Fetch active customers    query:       data_source_ref: golden-path-customers-postgres      operation_type: sql      operation_ref: golden-path-customers      output_contract:         name: golden-path-active-customers        representation: rows        fields:           - name: customer_slug            type: string            required: true          - name: customer_name            type: string            required: true          - name: customer_segment            type: string            required: true          - name: region            type: string            required: true  - kind: transform    slug: join-orders-customers    name: Join orders to active customers    transform:       inputs:         orders: fetch-paid-orders        customers: fetch-active-customers      input_contract:         name: golden-path-join-inputs        representation: rows        fields:           - name: orders.order_id            type: string            required: true          - name: orders.customer_slug            type: string            required: true          - name: orders.order_total_cents            type: integer            required: true          - name: orders.discount_cents            type: integer            required: true          - name: orders.net_total_cents            type: integer            required: true          - name: orders.placed_at_utc            type: string            required: true          - name: customers.customer_slug            type: string            required: true          - name: customers.customer_name            type: string            required: true          - name: customers.customer_segment            type: string            required: true          - name: customers.region            type: string            required: true      sql: |        SELECT          orders.order_id AS order_id,          orders.customer_slug AS customer_slug,          customers.customer_name AS customer_name,          customers.customer_segment AS customer_segment,          customers.region AS region,          orders.order_total_cents AS order_total_cents,          orders.discount_cents AS discount_cents,          orders.net_total_cents AS net_total_cents,          CAST(orders.net_total_cents AS DOUBLE) / 100 AS net_total_amount,          orders.placed_at_utc AS placed_at_utc        FROM orders        JOIN customers ON customers.customer_slug = orders.customer_slug        ORDER BY placed_at_utc, order_id      output_kind: rows      output_contract:         name: golden-path-joined-orders        representation: rows        fields:           - name: order_id            type: string            required: true          - name: customer_slug            type: string            required: true          - name: customer_name            type: string            required: true          - name: customer_segment            type: string            required: true          - name: region            type: string            required: true          - name: order_total_cents            type: integer            required: true          - name: discount_cents            type: integer            required: true          - name: net_total_cents            type: integer            required: true          - name: net_total_amount            type: number            required: true          - name: placed_at_utc            type: string            required: true  - kind: sink    slug: write-joined-orders    name: Write joined orders to S3    sink:       idempotency_class: naturally_idempotent      input: join-orders-customers      input_contract:         name: golden-path-joined-orders-s3-input        representation: rows        fields:           - name: order_id            type: string            required: true          - name: customer_slug            type: string            required: true          - name: customer_name            type: string            required: true          - name: customer_segment            type: string            required: true          - name: region            type: string            required: true          - name: order_total_cents            type: integer            required: true          - name: discount_cents            type: integer            required: true          - name: net_total_cents            type: integer            required: true          - name: net_total_amount            type: number            required: true          - name: placed_at_utc            type: string            required: true      data_source_ref: golden-path-s3-sink      operation_type: s3      operation_ref: golden-path-s3-write-joined-orders      config:         key: runs/{{runtime.sink_replay_identity}}/joined-orders.json        format: json        content_type: application/json        metadata:           source: braidplane-golden-path          run: "{{runtime.run_slug}}"        overwrite: true
Data source refs Portable logical source and sink references keep credentials out of the spec.
Operation refs Source and sink steps call saved connector operations by slug.
Transform contracts Input and output contracts make each data edge explicit.
Run slug Run-scoped output keys keep artifacts tied to execution evidence.
The recording above and this spec describe the same joined-orders pipeline.

Bring one workflow.

Tell us the systems involved, how often it runs, and what a useful result would look like. We reply by email to arrange a free conversation.

Discuss your workflow