Skip to content

feat(api): rework delayed step behavior#10664

Draft
paulwer wants to merge 2 commits intonovuhq:nextfrom
paulwer:feat-digest-rework
Draft

feat(api): rework delayed step behavior#10664
paulwer wants to merge 2 commits intonovuhq:nextfrom
paulwer:feat-digest-rework

Conversation

@paulwer
Copy link
Copy Markdown
Contributor

@paulwer paulwer commented Apr 11, 2026

What changed? Why was the change needed?

This PR reworks digest and delay handling to support manual placeholder-style behavior and bulk control of active workflow runs without introducing a new workflow step.

closes #6915, #5818

Main changes

  • added support for none type of digest and delay steps, requiring no delay condition
  • enabled query-based cancel and complete operations for active digest/delay jobs
  • added bulk filtering support using:
    • transactionId[]
    • subscriberId[]
    • workflowId
    • stepName
    • digestKey
    • stepType
  • unified completion behavior through the shared complete flow
  • added/updated e2e and schema coverage for the new behavior

Why this was needed

The goal was to support workflows where digest and delay steps can act as manual placeholders and be resumed or canceled later through the API.

We explicitly chose to add a new Digest/Delay type instead of introducing a new step because this behavior already fits the existing nature of both steps:

  • a digest step already decides whether events are grouped or not
  • a delay step already decides whether execution is held or not

So the none type simply leverages that existing behavior rather than creating a brand-new workflow concept.

This keeps the workflow model simpler, reuses the current execution pipeline, and avoids unnecessary abstraction.

@coderabbitai summary

Screenshots

Expand for optional sections

Related enterprise PR

Special notes for your reviewer

  • No database migration is required for the new digest/delay type values.
  • The implementation intentionally reuses existing digest/delay behavior instead of adding a new workflow step.
  • The query-based cancel/complete flow now supports bulk matching across multiple workflows/runs.

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 11, 2026

👷 Deploy request for dashboard-v2-novu-staging pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit e9d8635

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 11, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 0964db14-c48a-4336-b23d-ea8243ae9db1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@paulwer paulwer changed the title initial draft feat(steps): rework delayed step behavior Apr 11, 2026
@paulwer paulwer changed the title feat(steps): rework delayed step behavior feat(api): rework delayed step behavior Apr 11, 2026
@paulwer
Copy link
Copy Markdown
Contributor Author

paulwer commented Apr 11, 2026

@scopsy I fixed an windows specific error running cp on windows as part of prebuild.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🚀 Feature: Digest/Wait Until

1 participant