Documentation / Build

Four languages. One workflow.

Rust ingests, Python extracts, Node.js checks, and Java publishes. A failed check reworks only the affected shard.

Simulated business logic; no AWS or AI calls. From the runner checkout. Download the displayed JSON into the checkout root. The local runner reads JSON.

Run all four runtimes

shell
javac examples/java/RippflowHandler.java
rippflow dev polyglot.workflow.json --handlers polyglot.handlers.json --shards stmt-jan.pdf,stmt-feb.pdf --report polyglot-report.json

Download the handler manifest beside the workflow. Expected report payloads: rust, python, node, java; February is reworked once, then the terminal phase completes.

Workflow definition

JSON

json
{
  "name": "mixed-polyglot-pipeline",
  "version": "2.0.0",
  "default_group": "python-standard",
  "phases": {
    "ingest-packet": {
      "requires": [],
      "service": "simulated.splitter",
      "scope": "root",
      "inputs": {
        "simulated": true
      },
      "group": "rust-light"
    },
    "parse-statement": {
      "requires": [
        "ingest-packet"
      ],
      "service": "simulated.ocr_extract",
      "scope": "per_shard",
      "inputs": {
        "dpi": 300,
        "simulated": true
      },
      "group": "python-standard"
    },
    "verify-balance": {
      "requires": [
        "parse-statement"
      ],
      "service": "simulated.balance_auditor",
      "scope": "per_shard",
      "outcomes": {
        "completed": {
          "advance_barrier": true
        },
        "rework": {
          "rerun_phase": "parse-statement",
          "max_loops": 2,
          "override_inputs": {
            "dpi": 600,
            "high_accuracy_table_mode": true
          }
        }
      },
      "group": "node-standard"
    },
    "emit-underwriting-summary": {
      "requires": [
        "verify-balance"
      ],
      "service": "simulated.underwriter_summary",
      "scope": "fan_in_all",
      "terminal": true,
      "group": "java-standard"
    }
  }
}

YAML

yaml
name: mixed-polyglot-pipeline
version: 2.0.0
default_group: python-standard
phases:
  ingest-packet:
    requires: []
    service: simulated.splitter
    scope: root
    inputs:
      simulated: true
    group: rust-light
  parse-statement:
    requires:
      - ingest-packet
    service: simulated.ocr_extract
    scope: per_shard
    inputs:
      dpi: 300
      simulated: true
    group: python-standard
  verify-balance:
    requires:
      - parse-statement
    service: simulated.balance_auditor
    scope: per_shard
    outcomes:
      completed:
        advance_barrier: true
      rework:
        rerun_phase: parse-statement
        max_loops: 2
        override_inputs:
          dpi: 600
          high_accuracy_table_mode: true
    group: node-standard
  emit-underwriting-summary:
    requires:
      - verify-balance
    service: simulated.underwriter_summary
    scope: fan_in_all
    terminal: true
    group: java-standard

Download: JSON · YAML

Verified sources

Checked 2026-11-05.

Let's talk

Contact Rippflow

Tell us about your workflows, deployment or pricing.

We'll reply to your email.

Search docs

Search workflows, handlers and operations.