Back
    Use Case · Manufacturing

    Manufacturing on live streams.

    Sensor readings, machine logs, MES/ERP state and partner scans all decay in seconds. A pipeline running next to the line sees drift before it becomes downtime — and opens the work order with the context in it.

    shop-floor telemetrycondition monitoringpredictive maintenancesupply chain
    Shop-floor telemetry

    Every line, one live stream

    Gateways publish sensor readings over MQTT or HTTP; machine logs stream in via file-tail; MES and ERP state joins from JDBC sources. Dedup absorbs the retries that flaky industrial networks produce, and event-time ordering keeps readings honest even when a gateway buffers offline and uploads late.

    mqtt · webhookfile-tail logsjdbc MES/ERPdedup · event-time
    Condition monitoring

    Baselines per machine, drift in minutes

    Keyed state per asset maintains rolling baselines: avg, stddev, min/max over sliding windows. Deviation from a machine's own baseline — not a fleet-wide constant — trips deterministic rule stages in microseconds. A sensor that stops reporting is caught by keyed timers: silence is a signal too.

    per-asset windowsstddev driftrule thresholds · µsgap detection
    Predictive maintenance

    From anomaly to work order

    When a baseline breaks, an LLM stage drafts the context — what drifted, how fast, against which history — and an MCP stage opens the work order in your CMMS and notifies the technician. Statistical baselines work out of the box; your own failure model plugs in as a stage when you have one.

    llm context draftmcp work orderbring your modelhuman validates
    Supply chain visibility

    Correlate the order with reality

    A stream-stream join matches purchase orders with shipment scans and goods receipts inside a window — the gaps are the alerts: shipped-but-never-scanned, received-but-never-ordered, late against promise. Every partner system plugs in via webhook, polling or file drops.

    stream-stream joinwebhook · http-polllate = alertfan-out to ERP

    Built for the plant floor

    Runs next to the line, not across the WAN.

    Edge-sized footprint

    Pulse runs as a single self-hosted process with an embedded engine — an industrial PC in the cabinet is enough. No cloud round-trip in the alarm path.

    Survives the restart

    Per-agent offsets and checkpointed window state persist — a power cycle doesn't reset your baselines or replay yesterday's alarms.

    OT stays inside

    Self-hosted means process data never leaves the plant network unless you route it out. LLM stages can run against a local runtime on the same segment.

    Honest boundary

    "Predictive" means your physics, our plumbing.

    StreamFlow doesn't ship a pretrained failure model for your machines — nobody credibly can. What it ships: per-asset statistical baselines (drift, spread, gaps) that catch a large class of degradation out of the box, and a pipeline where your own model — vibration analysis, RUL estimation, whatever your reliability team trusts — slots in as a stage. The alert path, the work-order automation, the audit trail and the replay are the parts you don't have to build.

    What it looks like

    A condition watch is one file.

    Telemetry streams in per asset; baselines are computed in windows; a break opens a work order with context.

    yaml
    1# pulse.yaml — condition watch
    2source:
    3  kind: webhook          # gateway posts telemetry
    4
    5stages:
    6  - name: baseline
    7    engine: streaming
    8    operators:
    9      - window: 15m sliding
    10        keyBy: asset_id
    11        aggregations:
    12          vib_avg:    avg(vibration)
    13          vib_stddev: stddev(vibration)
    14          temp_max:   max(temperature)
    15
    16  - name: detect
    17    engine: rule-based
    18    rules:
    19      - "vib_stddev > baseline_band || temp_max > limit"
    20
    21  - name: contextualize
    22    engine: llm          # local runtime on the plant segment
    23    systemPrompt: |
    24      Summarize the drift for the technician:
    25      what moved, how fast, vs. history.
    26
    27  - name: workorder
    28    engine: mcp
    29    mcpTools: [ cmms.createWorkOrder ]
    30
    31sink:
    32  kind: webhook          # maintenance board
    33  url: ${secret:MAINT_BOARD_WEBHOOK}
    34
    1. 1

      Scaffold.

      pulse new condition --source webhook --stage streaming:baseline --stage rule-based:detect --stage llm:contextualize --stage mcp:workorder --sink webhook
    2. 2

      Point the gateways at it.

      MQTT or HTTP from your edge gateways; file-tail for machine logs; JDBC for MES context.

    3. 3

      Deploy & watch.

      pulse deploy . && pulse events tail --topic condition.detect.out

      Every baseline break, live.

    4. 4

      Prove the save.

      Deterministic replay reconstructs the exact drift behind any work order — evidence for the reliability review.

    Hear the machine before it stops.

    See telemetry stream into baselines and alerts in minutes — no install, no signup. Then self-host it next to the line.

    Try it live in the playground

    Pulse is free and self-hosted. Multi-node HA, geo-replication and governance come with StreamFlow Enterprise.