Add ruby-reactor to Ruby libraries section #1182
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A dynamic, dependency-resolving saga orchestrator for Ruby. Ruby Reactor implements the Saga pattern with compensation-based error handling and DAG-based execution planning. It leverages Sidekiq for asynchronous execution and Redis for state persistence.
Project
ruby-reactor: Ruby Reactor implements the Saga pattern with compensation-based error handling and DAG-based execution planning. It supports async execution via Sidekiq and persistence via Redis.
Urls:
What is this Ruby project?
ruby_reactoris a declarative workflow engine and logic orchestrator for Ruby. It provides a structured DSL to define complex business processes as a series of discrete, manageable steps. By encapsulating logic into "Reactors," it helps developers move away from bloated service objects and deeply nested conditional logic toward a more maintainable and observable architecture.Key Features:
stepdefinitions that separate business logic from control flow.RetryContext, allowing granular control over how individual steps handle failures and recoveries.What are the main difference between this Ruby project and similar ones?
ruby_reactorbridges the gap between simple service objects and complex state machine gems by focusing on the execution lifecycle.callchain,ruby_reactoroffers much more robust error handling and step-level retry mechanisms. It is designed for processes where failure is expected (like 3rd party APIs) and needs to be managed gracefully.ruby_reactorfocuses on the logic of the process itself (the "How"). It doesn't require a persistent database state to manage complex branching and retries.ruby_reactoris significantly lighter and easier to integrate into existing Rails or Hanami projects. It provides the "Operation" pattern's benefits—like Railway Oriented Programming—without the steep learning curve or heavy architectural overhead of the full Trailblazer ecosystem.performmethod, you useruby_reactorto define the logic, making the worker a simple wrapper that triggers the Reactor.Please help us to maintain this collection by using reactions (👍, 👎) and comments to express your feelings.