Channel Protocols

SequentialProtocol

Forces a channel to carry types in an exact sequence:

from stbass.channel import SequentialProtocol
 
---
 
## Patterns and Recipes
 
### Research Fan-Out with Timeout
 
Fan out to N research agents, with a global deadline:
 
```python
async def research_agent(idx, ctx):
    result = await do_research(topics[idx])
    return ProcessResult.ok(result)
 
result = await PAR_FOR(
    count=len(topics),
    factory=research_agent,
    on_failure=FailurePolicy.COLLECT,
    deadline=30.0,
).run()