Cloacina
Cloacina is a Rust library for building resilient task pipelines directly within your Rust applications. Unlike standalone orchestration services, Cloacina embeds into your existing applications to manage complex multi-step workflows with automatic retry, state persistence, and dependency resolution.
Features
- Embedded Framework: Integrates directly into your Rust applications
- Resilient Execution: Automatic retries, failure recovery, and state persistence
- Type-Safe Workflows: Compile-time validation of task dependencies and data flow
- Database-Backed: Uses PostgreSQL for reliable state management
- Async-First: Built on tokio for high-performance concurrent execution
- Content-Versioned: Automatic workflow versioning based on task code and structure
Installation
Add Cloacina to your Cargo.toml:
[]
= "0.1.0"
= "0.1" # Required for async task definitions
= "0.2" # Required for task registration
= "1.0" # Required for context data serialization
Quick Start
Here's a simple example that demonstrates the basic usage:
use *;
// Define a simple task
async
// Create the workflow
let workflow = workflow! ;
// Initialize executor with database
let executor = new.await?;
// Execute the workflow
let result = executor.execute.await?;
Documentation
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.