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()