| name | concurrency-control |
| description | Prevent workflow conflicts with mutex synchronization, semaphores for limited parallelism, and TTL strategies for automatic cleanup of completed workflows. |
Concurrency Control
When to Use This Skill
When multiple workflows operate on shared resources, conflicts are inevitable. Two builds writing to the same output directory corrupt each other. Two deployments running simultaneously leave the system in an undefined state. Two cache rebuilds compete for the same ConfigMap.
Concurrency control prevents these conflicts. Argo Workflows provides several mechanisms: mutexes for exclusive access, semaphores for limited parallelism, and TTL strategies for cleanup.
Implementation
- Identify shared resources - What can only be accessed by one workflow at a time?
- Choose the right pattern - Mutex for exclusive access, semaphore for limited parallelism
- Configure TTL - Prevent unbounded growth of completed workflows
- Test under load - Verify behavior when multiple workflows trigger simultaneously
Start with Mutex
When in doubt, start with a mutex. It's simpler to configure and debug. Only switch to semaphores when you need controlled parallelism.
Techniques
Patterns
| Pattern | Description |
|---|---|
| Mutex Synchronization | Exclusive access to shared resources |
| Semaphores | Limited concurrent access |
| TTL Strategy | Automatic cleanup of completed workflows |
Anti-Patterns to Avoid
| Pattern | Description |
|---|---|
| Mutex Synchronization | Exclusive access to shared resources |
| Semaphores | Limited concurrent access |
| TTL Strategy | Automatic cleanup of completed workflows |
Related Patterns
- Mutex Synchronization
- Semaphores
- TTL Strategy