Skip to content

fix: remove unused async options from Reactor.undo/3#292

Merged
jimsynz merged 1 commit intomainfrom
fix/291-remove-unused-undo-options
Jan 25, 2026
Merged

fix: remove unused async options from Reactor.undo/3#292
jimsynz merged 1 commit intomainfrom
fix/291-remove-unused-undo-options

Conversation

@jimsynz
Copy link
Contributor

@jimsynz jimsynz commented Jan 25, 2026

Summary

  • Remove unused async-related options (async?, max_concurrency, timeout, max_iterations) from Reactor.undo/3
  • The undo operation is intentionally sequential - this is correct saga behaviour as the forward dependency graph cannot be reliably inverted for undo operations
  • Fix flaky timing test in executor_test.exs by removing unnecessarily tight upper bound

Breaking Change

Passing removed options to Reactor.undo/3 will now result in a Spark.Options validation error. Users need to remove these options from their undo calls.

Test plan

  • All existing tests pass (mix check --no-retry)
  • Undo-related tests in test/reactor_test.exs pass
  • Compose with undo tests in test/reactor/dsl/compose_test.exs pass
  • Documentation generates correctly (mix docs)

Closes #291

`Reactor.undo/3` accepted async-related options (`async?`, `max_concurrency`,
`timeout`, `max_iterations`) but never used them. The undo operation is
intentionally sequential - this is correct saga behaviour as the forward
dependency graph cannot be reliably inverted for undo operations.

This is a breaking change: passing removed options will now result in a
Spark.Options validation error.

Also fixes a flaky timing test in executor_test.exs by removing an
unnecessarily tight upper bound on elapsed time.

Closes #291
@jimsynz jimsynz force-pushed the fix/291-remove-unused-undo-options branch from 3d8b1e9 to 7b620b0 Compare January 25, 2026 22:18
@jimsynz jimsynz merged commit 304c237 into main Jan 25, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Reactor.undo accepts async-related options but does not actually do any async operations

1 participant