Skip to content

fix!: remove process manager - #24

Merged
yordis merged 1 commit into
mainfrom
yordis/remove-process-manager
Oct 28, 2025
Merged

yordis merged 1 commit into
mainfrom
yordis/remove-process-manager

Conversation

@yordis

@yordis yordis commented Oct 28, 2025

Copy link
Copy Markdown
Member

No description provided.

@yordis
yordis force-pushed the yordis/remove-process-manager branch from 6ed5f24 to a02e683 Compare October 28, 2025 15:50
@coderabbitai

coderabbitai Bot commented Oct 28, 2025 •

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

Walkthrough

This pull request removes the entire process manager feature from the Commanded framework, including all related modules, documentation, tests, and configuration. The removal spans production code, test infrastructure, documentation, and build configuration, eliminating process manager APIs, behavioral callbacks, supervision logic, and associated examples.

Changes

Cohort / File(s) Summary
Process Manager Core Modules
lib/commanded/process_managers/process_manager.ex, lib/commanded/process_managers/process_manager_instance.ex, lib/commanded/process_managers/process_router.ex, lib/commanded/process_managers/supervisor.ex, lib/commanded/process_managers/failure_context.ex
Deleted entire process manager implementation, including the ProcessManager macro with callbacks (interested?, handle, apply, error), ProcessManagerInstance GenServer, ProcessRouter event subscription and routing logic, dynamic supervisor, and FailureContext struct.
Documentation – Feature Removed
guides/explanations/process-managers.md
Removed the entire process managers explanation guide covering lifecycle, callbacks, error handling, and configuration.
Documentation – Feature References Updated
guides/explanations/commands.md, guides/explanations/supervision.md, guides/explanations/serialization.md, guides/explanations/events.md, guides/explanations/testing.md, guides/howtos/migrating-from-v1-to-v2.md, guides/howtos/usage.md
Updated documentation to remove process manager references from strong consistency descriptions, supervision responsibilities, serialization guidance, upcaster targets, consistency testing, migration paths, and navigation links.
Library API Documentation
lib/application.ex, lib/commanded.ex, lib/commanded/commands/router.ex, lib/commanded/event/handler.ex, lib/commanded/event/upcaster.ex
Updated module documentation to remove process manager references from consistency waiting, event handler naming guidance, and explicit consistency option lists.
Configuration & Build
config/test.exs, mix.exs
Removed process manager test applications from test configuration and removed process manager test paths and documentation groups from build configuration.
Test – Correlation and Consistency
test/commands/correlation_causation_test.exs, test/commands/dispatch_consistency_test.exs, test/commands/support/consistency/strongly_consistent_process_manager.ex
Deleted process manager correlation/causation tests and removed strongly consistent process manager test fixture.
Test – Upcasting
test/event/support/upcast/process_manager.ex, test/event/upcaster_test.exs
Removed process manager upcast fixture and related test coverage.
Test – Process Manager Core
test/process_managers/process_manager_*_test.exs (14 files)
Deleted comprehensive test suites covering process manager initialization, lifecycle, instance management, error handling, timeouts, idle timeouts, subscriptions, telemetry, routing, and integration scenarios.
Test – Process Manager Support Modules
test/process_managers/support/*.ex (20+ files)
Removed all test support modules including example aggregates, routers, command handlers, and process managers with various configurations (error handling, timeouts, routing, identity, dynamic, resume, todo).
Test – Example Domain
test/example_domain/money_transfer/transfer_money_process_manager.ex
Removed the TransferMoneyProcessManager example implementation.
Test – Subscriptions
test/subscriptions/support/distributed_subscribers.ex
Removed dynamic process manager module declarations and updated subscriber collection to exclude process managers.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Areas requiring extra attention:

  • Removed public API surface: Verify no external consumers depend on removed modules (Commanded.ProcessManagers.*) and callback definitions (interested?, handle, apply, error callbacks).
  • Documentation consistency: Ensure all references to process managers have been updated or removed across guides and API docs; verify strong consistency behavior is accurately described without process manager mentions.
  • Test coverage gaps: Confirm that removed test scenarios (integration tests, error handling, routing) are not critical for ongoing framework functionality or that coverage is replaced elsewhere.
  • Configuration completeness: Verify config/test.exs and mix.exs changes don't leave orphaned references; check that removed test paths don't break test discovery.

Poem

🐰 Hop along, process managers take flight,
Strong consistency shines ever bright,
Event handlers lead the way,
Simpler paths, cleaner today.
Commanded evolves, trimmer and tight! 🌟

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch yordis/remove-process-manager

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bb29716 and 6a14ce3.

📒 Files selected for processing (72)
  • config/test.exs (0 hunks)
  • guides/explanations/commands.md (3 hunks)
  • guides/explanations/events.md (1 hunks)
  • guides/explanations/process-managers.md (0 hunks)
  • guides/explanations/serialization.md (1 hunks)
  • guides/explanations/supervision.md (1 hunks)
  • guides/explanations/testing.md (1 hunks)
  • guides/howtos/migrating-from-v1-to-v2.md (2 hunks)
  • guides/howtos/usage.md (0 hunks)
  • lib/application.ex (2 hunks)
  • lib/commanded.ex (0 hunks)
  • lib/commanded/commands/router.ex (1 hunks)
  • lib/commanded/event/handler.ex (1 hunks)
  • lib/commanded/event/upcaster.ex (1 hunks)
  • lib/commanded/process_managers/failure_context.ex (0 hunks)
  • lib/commanded/process_managers/process_manager.ex (0 hunks)
  • lib/commanded/process_managers/process_manager_instance.ex (0 hunks)
  • lib/commanded/process_managers/process_router.ex (0 hunks)
  • lib/commanded/process_managers/supervisor.ex (0 hunks)
  • mix.exs (0 hunks)
  • test/commands/correlation_causation_test.exs (0 hunks)
  • test/commands/dispatch_consistency_test.exs (1 hunks)
  • test/commands/support/consistency/strongly_consistent_process_manager.ex (0 hunks)
  • test/event/support/upcast/process_manager.ex (0 hunks)
  • test/event/upcaster_test.exs (1 hunks)
  • test/example_domain/money_transfer/transfer_money_process_manager.ex (0 hunks)
  • test/process_managers/dynamic_process_manager_application_test.exs (0 hunks)
  • test/process_managers/multi_routing_test.exs (0 hunks)
  • test/process_managers/process_manager_after_command_test.exs (0 hunks)
  • test/process_managers/process_manager_error_handling_state_test.exs (0 hunks)
  • test/process_managers/process_manager_error_handling_test.exs (0 hunks)
  • test/process_managers/process_manager_idle_timeout_test.exs (0 hunks)
  • test/process_managers/process_manager_init_test.exs (0 hunks)
  • test/process_managers/process_manager_instance_exception_test.exs (0 hunks)
  • test/process_managers/process_manager_instance_test.exs (0 hunks)
  • test/process_managers/process_manager_integration_test.exs (0 hunks)
  • test/process_managers/process_manager_routing_test.exs (0 hunks)
  • test/process_managers/process_manager_subscription_test.exs (0 hunks)
  • test/process_managers/process_manager_telemetry_test.exs (0 hunks)
  • test/process_managers/process_manager_timeout_test.exs (0 hunks)
  • test/process_managers/process_router_process_pending_events_test.exs (0 hunks)
  • test/process_managers/resume_process_manager_test.exs (0 hunks)
  • test/process_managers/support/after_command_process_manager.ex (0 hunks)
  • test/process_managers/support/dynamic_process_manager.ex (0 hunks)
  • test/process_managers/support/error/default_error_handling_process_manager.ex (0 hunks)
  • test/process_managers/support/error/error_aggregate.ex (0 hunks)
  • test/process_managers/support/error/error_app.ex (0 hunks)
  • test/process_managers/support/error/error_handling_process_manager.ex (0 hunks)
  • test/process_managers/support/error/error_router.ex (0 hunks)
  • test/process_managers/support/error/state_error_handling_process_manager.ex (0 hunks)
  • test/process_managers/support/example_aggregate.ex (0 hunks)
  • test/process_managers/support/example_app.ex (0 hunks)
  • test/process_managers/support/example_command_handler.ex (0 hunks)
  • test/process_managers/support/example_process_manager.ex (0 hunks)
  • test/process_managers/support/example_router.ex (0 hunks)
  • test/process_managers/support/identity/identity_process_manager.ex (0 hunks)
  • test/process_managers/support/init/runtime_config_process_manager.ex (0 hunks)
  • test/process_managers/support/multi/todo.ex (0 hunks)
  • test/process_managers/support/multi/todo_app.ex (0 hunks)
  • test/process_managers/support/multi/todo_list.ex (0 hunks)
  • test/process_managers/support/multi/todo_process_manager.ex (0 hunks)
  • test/process_managers/support/multi/todo_router.ex (0 hunks)
  • test/process_managers/support/null_handler.ex (0 hunks)
  • test/process_managers/support/null_router.ex (0 hunks)
  • test/process_managers/support/resume/resume_aggregate.ex (0 hunks)
  • test/process_managers/support/resume/resume_app.ex (0 hunks)
  • test/process_managers/support/resume/resume_command_handler.ex (0 hunks)
  • test/process_managers/support/resume/resume_process_manager.ex (0 hunks)
  • test/process_managers/support/resume/resume_router.ex (0 hunks)
  • test/process_managers/support/routing/routing_process_manager.ex (0 hunks)
  • test/process_managers/support/timeout_process_manager.ex (0 hunks)
  • test/subscriptions/support/distributed_subscribers.ex (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis
yordis force-pushed the yordis/remove-process-manager branch from a02e683 to 6a14ce3 Compare October 28, 2025 15:56
@yordis
yordis marked this pull request as ready for review October 28, 2025 16:01
@yordis
yordis merged commit fbe7479 into main Oct 28, 2025
4 checks passed
@yordis
yordis deleted the yordis/remove-process-manager branch October 28, 2025 16:01
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.

1 participant