Job is idle — throughput ~0; structure shown.
Fragment 25032 (Actor 120012,120011)
StreamMaterialize { columns: [cash_hold_id, order_id, provider_hold_id, funding_account_id, hold_amount, float_used, currency_code, status, created_at, updated_at, order_execution_state, order_executed_at, settlement_id, settlement_state, settlement_expected_date, settlement_settled_at, order_settlements.order_id(hidden)], stream_key: [cash_hold_id, order_id], pk_columns: [cash_hold_id, order_id], pk_conflict: NoCheck }
├── output:
│ ┌── order_cash_holds.id
│ ├── order_cash_holds.order_id
│ ├── order_cash_holds.provider_hold_id
│ ├── order_cash_holds.funding_account_id
│ ├── order_cash_holds.hold_amount
│ ├── order_cash_holds.float_used
│ ├── order_cash_holds.currency_code
│ ├── order_cash_holds.status
│ ├── order_cash_holds.created_at
│ ├── order_cash_holds.updated_at
│ ├── orders.execution_state
│ ├── orders.executed_at
│ ├── order_settlements.id
│ ├── order_settlements.state
│ ├── order_settlements.expected_settlement_date
│ ├── order_settlements.settled_at
│ └── order_settlements.order_id
├── stream key: [ order_cash_holds.id, order_cash_holds.order_id ]
└── MergeExecutor
├── output:
│ ┌── order_cash_holds.id
│ ├── order_cash_holds.order_id
│ ├── order_cash_holds.provider_hold_id
│ ├── order_cash_holds.funding_account_id
│ ├── order_cash_holds.hold_amount
│ ├── order_cash_holds.float_used
│ ├── order_cash_holds.currency_code
│ ├── order_cash_holds.status
│ ├── order_cash_holds.created_at
│ ├── order_cash_holds.updated_at
│ ├── orders.execution_state
│ ├── orders.executed_at
│ ├── order_settlements.id
│ ├── order_settlements.state
│ ├── order_settlements.expected_settlement_date
│ ├── order_settlements.settled_at
│ └── order_settlements.order_id
└── stream key: [ order_cash_holds.id, order_cash_holds.order_id ]
Fragment 25033 (Actor 120007,120008)
StreamSyncLogStore
├── output:
│ ┌── order_cash_holds.id
│ ├── order_cash_holds.order_id
│ ├── order_cash_holds.provider_hold_id
│ ├── order_cash_holds.funding_account_id
│ ├── order_cash_holds.hold_amount
│ ├── order_cash_holds.float_used
│ ├── order_cash_holds.currency_code
│ ├── order_cash_holds.status
│ ├── order_cash_holds.created_at
│ ├── order_cash_holds.updated_at
│ ├── orders.execution_state
│ ├── orders.executed_at
│ ├── order_settlements.id
│ ├── order_settlements.state
│ ├── order_settlements.expected_settlement_date
│ ├── order_settlements.settled_at
│ └── order_settlements.order_id
├── stream key: [ order_cash_holds.id, order_cash_holds.order_id ]
└── StreamHashJoin { type: LeftOuter, predicate: order_cash_holds.order_id = order_settlements.order_id }
├── output:
│ ┌── order_cash_holds.id
│ ├── order_cash_holds.order_id
│ ├── order_cash_holds.provider_hold_id
│ ├── order_cash_holds.funding_account_id
│ ├── order_cash_holds.hold_amount
│ ├── order_cash_holds.float_used
│ ├── order_cash_holds.currency_code
│ ├── order_cash_holds.status
│ ├── order_cash_holds.created_at
│ ├── order_cash_holds.updated_at
│ ├── orders.execution_state
│ ├── orders.executed_at
│ ├── order_settlements.id
│ ├── order_settlements.state
│ ├── order_settlements.expected_settlement_date
│ ├── order_settlements.settled_at
│ └── order_settlements.order_id
├── stream key: [ order_cash_holds.id, order_cash_holds.order_id ]
├── MergeExecutor
│ ├── output: [ order_cash_holds.id, order_cash_holds.order_id, order_cash_holds.provider_hold_id, order_cash_holds.funding_account_id, order_cash_holds.hold_amount, order_cash_holds.float_used, order_cash_holds.currency_code, order_cash_holds.status, order_cash_holds.created_at, order_cash_holds.updated_at, orders.execution_state, orders.executed_at, orders.id ]
│ └── stream key: [ order_cash_holds.id, order_cash_holds.order_id ]
└── StreamProject { exprs: [order_settlements.order_id, order_settlements.id, order_settlements.state, order_settlements.expected_settlement_date, order_settlements.settled_at] } { output: [ order_settlements.order_id, order_settlements.id, order_settlements.state, order_settlements.expected_settlement_date, order_settlements.settled_at ], stream key: [ order_settlements.order_id ] }
└── StreamGroupTopN { order: [order_settlements.settled_at DESC NULLS LAST, order_settlements.created_at DESC, order_settlements.id DESC], limit: 1, offset: 0, group_key: [order_settlements.order_id] }
├── output: [ order_settlements.id, order_settlements.order_id, order_settlements.state, order_settlements.expected_settlement_date, order_settlements.settled_at, order_settlements.created_at ]
├── stream key: [ order_settlements.order_id ]
└── MergeExecutor { output: [ order_settlements.id, order_settlements.order_id, order_settlements.state, order_settlements.expected_settlement_date, order_settlements.settled_at, order_settlements.created_at ], stream key: [ order_settlements.id ] }
Fragment 25034 (Actor 120009,120010)
StreamSyncLogStore
├── output: [ order_cash_holds.id, order_cash_holds.order_id, order_cash_holds.provider_hold_id, order_cash_holds.funding_account_id, order_cash_holds.hold_amount, order_cash_holds.float_used, order_cash_holds.currency_code, order_cash_holds.status, order_cash_holds.created_at, order_cash_holds.updated_at, orders.execution_state, orders.executed_at, orders.id ]
├── stream key: [ order_cash_holds.id, order_cash_holds.order_id ]
└── StreamHashJoin { type: LeftOuter, predicate: order_cash_holds.order_id = orders.id }
├── output: [ order_cash_holds.id, order_cash_holds.order_id, order_cash_holds.provider_hold_id, order_cash_holds.funding_account_id, order_cash_holds.hold_amount, order_cash_holds.float_used, order_cash_holds.currency_code, order_cash_holds.status, order_cash_holds.created_at, order_cash_holds.updated_at, orders.execution_state, orders.executed_at, orders.id ]
├── stream key: [ order_cash_holds.id, order_cash_holds.order_id ]
├── MergeExecutor { output: [ order_cash_holds.id, order_cash_holds.order_id, order_cash_holds.provider_hold_id, order_cash_holds.funding_account_id, order_cash_holds.hold_amount, order_cash_holds.float_used, order_cash_holds.currency_code, order_cash_holds.status, order_cash_holds.created_at, order_cash_holds.updated_at ], stream key: [ order_cash_holds.id ] }
└── MergeExecutor { output: [ orders.id, orders.execution_state, orders.executed_at ], stream key: [ orders.id ] }
Fragment 25035 (Actor 120013,120014)
StreamTableScan { table: order_cash_holds, columns: [id, order_id, provider_hold_id, funding_account_id, hold_amount, float_used, currency_code, status, created_at, updated_at] }
├── output: [ order_cash_holds.id, order_cash_holds.order_id, order_cash_holds.provider_hold_id, order_cash_holds.funding_account_id, order_cash_holds.hold_amount, order_cash_holds.float_used, order_cash_holds.currency_code, order_cash_holds.status, order_cash_holds.created_at, order_cash_holds.updated_at ]
├── stream key: [ order_cash_holds.id ]
├── Upstream { output: [ id, order_id, provider_hold_id, funding_account_id, hold_amount, float_used, currency_code, status, created_at, updated_at ], stream key: [] }
└── BatchPlanNode { output: [ id, order_id, provider_hold_id, funding_account_id, hold_amount, float_used, currency_code, status, created_at, updated_at ], stream key: [] }
Fragment 25036 (Actor 120015,120016)
StreamProject { exprs: [orders.id, orders.execution_state, orders.executed_at] } { output: [ orders.id, orders.execution_state, orders.executed_at ], stream key: [ orders.id ] }
└── StreamGroupTopN { order: [orders.created_at DESC], limit: 1, offset: 0, group_key: [orders.id] } { output: [ orders.id, orders.execution_state, orders.created_at, orders.executed_at ], stream key: [ orders.id ] }
└── StreamTableScan { table: orders, columns: [id, execution_state, created_at, executed_at] } { output: [ orders.id, orders.execution_state, orders.created_at, orders.executed_at ], stream key: [ orders.id, orders.created_at ] }
├── Upstream { output: [ id, execution_state, created_at, executed_at ], stream key: [] }
└── BatchPlanNode { output: [ id, execution_state, created_at, executed_at ], stream key: [] }
Fragment 25037 (Actor 120018,120017)
StreamFilter { predicate: Not(IsNull(order_settlements.order_id)) } { output: [ order_settlements.id, order_settlements.order_id, order_settlements.state, order_settlements.expected_settlement_date, order_settlements.settled_at, order_settlements.created_at ], stream key: [ order_settlements.id ] }
└── StreamTableScan { table: order_settlements, columns: [id, order_id, state, expected_settlement_date, settled_at, created_at] } { output: [ order_settlements.id, order_settlements.order_id, order_settlements.state, order_settlements.expected_settlement_date, order_settlements.settled_at, order_settlements.created_at ], stream key: [ order_settlements.id ] }
├── Upstream { output: [ id, order_id, state, expected_settlement_date, settled_at, created_at ], stream key: [] }
└── BatchPlanNode { output: [ id, order_id, state, expected_settlement_date, settled_at, created_at ], stream key: [] }