Parallel Processing with Join Modes
v1.1 FeatureDemonstrates v1.1 join modes — wait_all, wait_any, wait_n for parallel branches.
6 nodes · 7 edgesv1.1 features
v1.1joinparallelresilience
Visual
dispatchsystem
↓parallel→ search_google
↓parallel→ search_bing
↓parallel→ search_brave
search_googleapi
↓parallel→ merge_results
search_bingapi
↓parallel→ merge_results
search_braveapi
↓parallel→ merge_results
merge_resultsagent
↓sequential→ deliver
deliverapi
ex-join-modes-parallel.osop.yaml
osop_version: "1.1"
id: "join-modes-parallel"
name: "Parallel Processing with Join Modes"
description: "Demonstrates v1.1 join modes — wait_all, wait_any, wait_n for parallel branches."
tags: [v1.1, join, parallel, resilience]
nodes:
- id: "dispatch"
type: "system"
purpose: "Dispatch query to multiple search providers."
- id: "search_google"
type: "api"
purpose: "Search Google."
runtime:
endpoint: "https://www.googleapis.com/customsearch/v1"
timeout_sec: 10
- id: "search_bing"
type: "api"
purpose: "Search Bing."
runtime:
endpoint: "https://api.bing.microsoft.com/v7.0/search"
timeout_sec: 10
- id: "search_brave"
type: "api"
purpose: "Search Brave."
runtime:
endpoint: "https://api.search.brave.com/res/v1/web/search"
timeout_sec: 10
- id: "merge_results"
type: "agent"
subtype: "llm"
purpose: "Merge and deduplicate results from available sources."
runtime:
model: "claude-haiku-4-5"
- id: "deliver"
type: "api"
purpose: "Return merged results to user."
edges:
- from: "dispatch"
to: "search_google"
mode: "parallel"
- from: "dispatch"
to: "search_bing"
mode: "parallel"
- from: "dispatch"
to: "search_brave"
mode: "parallel"
# Proceed when ANY 2 of 3 search engines respond
- from: "search_google"
to: "merge_results"
mode: "parallel"
join_mode: "wait_n"
join_count: 2
- from: "search_bing"
to: "merge_results"
mode: "parallel"
- from: "search_brave"
to: "merge_results"
mode: "parallel"
- from: "merge_results"
to: "deliver"
mode: "sequential"