Skip to content

Add system group support to scheduler configuration#316

Merged
waynemwashuma merged 3 commits into
wimaengine:devfrom
waynemwashuma:system-groups
May 15, 2026
Merged

Add system group support to scheduler configuration#316
waynemwashuma merged 3 commits into
wimaengine:devfrom
waynemwashuma:system-groups

Conversation

@waynemwashuma
Copy link
Copy Markdown
Collaborator

Objective

Introduce system group support to the scheduling configuration layer.

  • Add system group registration to SchedulerBuilder
  • Extend SystemConfig with optional group metadata
  • Prepare the scheduler architecture for grouped system organization and execution

Solution

Previously, systems could only be registered as a flat list within the scheduler builder.

This limited the ability to:

  • Organize systems into logical execution groups
  • Attach metadata to groups
  • Build future grouped execution or ordering behavior

Why this approach

Adding grouping metadata at the configuration layer:

  • Keeps the scheduler extensible

  • Avoids coupling group semantics directly into system execution

  • Enables future features such as:

    • grouped ordering
    • conditional execution
    • hierarchical scheduling
    • debugging/visualization tooling

Using constructor labels also aligns with the engine's existing type-based identification patterns.

Showcase

Before

Systems were registered independently,No grouping metadata existed.:

new SystemConfig(system, 'update')

After

Systems can now declare a group:

new SystemConfig(system, 'update', RenderSystems)

Groups can also be registered explicitly:

builder.addGroup({
  label: RenderSystems
})

Benefits:

  • Systems can now be categorized structurally and semantically
  • Scheduler configuration becomes more extensible
  • Future grouped execution logic can build on existing metadata

Notes:

  • System grouping currently introduces configuration metadata only
  • Existing scheduling behavior remains unchanged
  • System groups is optional and fully backwards compatible

Migration guide

No migration required.

Checklist

  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.

@github-actions github-actions Bot added the mod:schedule This PR/issue affects the schedule module label May 15, 2026
@waynemwashuma waynemwashuma self-assigned this May 15, 2026
@waynemwashuma waynemwashuma added the type:enhancement New feature or request label May 15, 2026
@waynemwashuma waynemwashuma merged commit 25a82f6 into wimaengine:dev May 15, 2026
7 checks passed
@waynemwashuma waynemwashuma deleted the system-groups branch May 15, 2026 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mod:schedule This PR/issue affects the schedule module type:enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant