AccessOwl-demo is a robust onboarding system that coordinates user provisioning across multiple SaaS platforms (Slack, ClickUp, GitHub, etc.) using the Saga pattern. Instead of treating onboarding as a single transaction, it breaks it into steps with automatic compensation if any part fails. This ensures data consistency across all integrated services while providing full auditability of the onboarding process.
- Reliable Multi-Service Coordination: Atomic onboarding across Slack, ClickUp, GitHub, and email
- Automatic Rollback: If any step fails, completed steps are automatically reversed
- Failure Recovery: Built-in retry logic with exponential backoff
- Audit Trail: Complete history of all onboarding attempts and compensations
- Error Simulation: Test edge cases like rate limits or network failures
- Flexible Integration: Easily add new SaaS providers to the workflow
- Distributed Transactions: Manages operations across multiple external APIs
- Compensation Safety: Each successful step has a defined undo operation
- Eventual Consistency: Ensures systems converge to correct state even after failures
- Perfect for Onboarding: Matches real-world business processes where partial failures are common
Setup the Project
mix deps.get
Reactor.run(AccessOwlOnboarding, %{user_email: "syedrizwan@elixir.com", role: "developer"})