Overview
Execution contexts define how plugins can run in relation to other plugins during task execution. These policies control concurrency and resource isolation.Execution Policies
Exclusive
The plugin requires exclusive access to the task. No other plugins can execute simultaneously.Characteristics
Characteristics
- Single plugin executes per task
- Maximum resource availability
Use cases
Use cases
- Complete plugins that cover an entire analysis flow
- Plugins that heavily affect the environment
- All-in-one analysis tools
- Plugins requiring full system resources
Sequential
Plugins execute one at a time in a defined order. Each plugin must complete before the next begins.Characteristics
Characteristics
- Plugins execute in defined order
- Each plugin completes before next starts
- Access to previous plugin results
- Predictable execution flow
- Prevents resource contention between plugins
- Maintains clear causality chain
Use cases
Use cases
- Plugins with dependencies on previous analysis results
- Resource-intensive operations that shouldn’t overlap
- Analysis pipelines with ordering requirements
- Multi-stage processing workflows
Parallel
Plugins can execute concurrently with compatible plugins. The plugin developer can select specific plugins and compatible versions. Additionally, the user can also add or remove compatible plugins to the list.Characteristics
Characteristics
- Multiple plugins execute simultaneously
- Configurable compatibility lists per plugin
- User can override compatibility settings
- Plugin interactions must be non-conflicting
Use cases
Use cases
- Independent analysis tasks (static analysis, file parsing)
- Plugins that don’t conflict on resources
- Performance-optimized analysis pipelines
- Complementary analysis tools
Unrestricted
The plugin can execute alongside any other plugins without specific requirements. No coordination or restrictions apply.Characteristics
Characteristics
- No execution restrictions or coordination
- Can run alongside any other plugin
- Typically read-only or observational
Use cases
Use cases
- Lightweight monitoring or logging plugins
- Passive observers that don’t modify state
- Plugins with minimal resource footprint