Skip to content

Conversation

Aviatorscode2
Copy link
Contributor

@Aviatorscode2 Aviatorscode2 commented Sep 26, 2025

Summary by CodeRabbit

  • Documentation
    • Added a new "Throttle Step" workflow guide to Platform docs and navigation.
    • Explains limiting workflow executions per subscriber with Fixed and Dynamic windows, configuration (name/identifier, window duration, thresholds), grouping by payload keys, and cross-channel behavior.
    • Includes dynamic window formats (timestamps or duration objects), examples, and subscriber experience notes.

Copy link

linear bot commented Sep 26, 2025

Copy link

netlify bot commented Sep 26, 2025

Deploy Preview for docs-novu failed. Why did it fail? →

Name Link
🔨 Latest commit 65a78ed
🔍 Latest deploy log https://app.netlify.com/projects/docs-novu/deploys/68dc0dd8c45975000858c07c

Copy link
Contributor

coderabbitai bot commented Sep 26, 2025

Walkthrough

Adds a new Throttle Step documentation page and updates platform docs navigation to include it. No runtime code changed; only documentation and metadata updated.

Changes

Cohort / File(s) Summary
Docs navigation update
content/docs/platform/meta.json
Added "workflow/throttle-step" to the pages array.
New Throttle Step doc
content/docs/platform/workflow/throttle-step.mdx
Added documentation describing the Throttle Step: purpose, Fixed and Dynamic window modes, configuration fields (Name, Identifier, window settings, thresholds, grouping), example configurations, payload formats for dynamic windows, cross-channel behavior, and subscriber notes.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant U as Workflow Engine
  participant T as Throttle Step (docged)
  participant S as Counter Store
  participant D as Downstream Step

  rect rgba(135,206,235,0.12)
    U->>T: Invoke throttle check (payload, subscriber, window key)
    T->>S: Read current count and window state
    alt under threshold
      S-->>T: count < threshold
      T->>S: Increment count (create/extend window)
      T-->>U: Allow execution
      U->>D: Proceed to downstream step
    else threshold reached
      S-->>T: count >= threshold
      T-->>U: Throttle (delay/skip per config)
      Note right of U: Workflow paused or alternate branch taken
    end
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

I’m a rabbit in the docs tonight,
Counting hops to keep them light.
Windows fixed or dynamically set,
Throttle the rush, no need to fret.
Hops paced neat — the changelog’s bright. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title “Docs content for the throttle step” succinctly conveys that the pull request’s main change is the addition of documentation for the throttle step workflow, directly matching the new meta entry and MDX file without including extraneous details.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch MRK-1066

📜 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 da9e942 and 65a78ed.

⛔ Files ignored due to path filters (1)
  • public/images/workflows/throttle.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • content/docs/platform/workflow/throttle-step.mdx (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • content/docs/platform/workflow/throttle-step.mdx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build and Lint

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 79137d1 and 1e7127e.

⛔ Files ignored due to path filters (3)
  • public/images/workflows/dynamic-window.png is excluded by !**/*.png
  • public/images/workflows/fixed-window.png is excluded by !**/*.png
  • public/images/workflows/throttle-step-activity-feed.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • content/docs/platform/meta.json (1 hunks)
  • content/docs/platform/workflow/throttle-step.mdx (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build and Lint
🔇 Additional comments (1)
content/docs/platform/meta.json (1)

31-31: Entry looks good

The throttle step page is now discoverable alongside the other workflow docs, consistent with the existing slug conventions.

Aviatorscode2 and others added 2 commits September 26, 2025 13:17
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@@ -0,0 +1,82 @@
---
title: 'Throttle Step'
description: 'Learn how to use the Throttle step in Novu workflows to control notification frequency.'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not capitalize every instance of "throttle." Apply throughout.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Throttle is a feature in the UI, that was why it was capitalized.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but you capitalize it in some places and not others. In this description, it is not clear whether you are explicitly talking about a UI thing (click Throttle step) or a generic thing (the throttle step exists and does useful stuff).

Copy link
Contributor

@DianaHackmamba DianaHackmamba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Honestly, the only thing left is working out when "throttle" should be capitalized or not.


## Throttle window

The throttle window defines the time period in which executions are counted. Within this window, only the specified number of executions are allowed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is what I meant, Victor. Throttle is not capitalized in this paragraph, is in the next.

"Throttle step properties panel" looks like UI text, but "Throttle Window" capitalized here and not in the previous paragraph is inconsistent and confusing.

"throttleUntil": "2025-10-31T23:59:59Z"
}
```
2. **Duration Object**: This format throttles executions for a duration relative to the time of the first trigger. It follows the same structure as the fixed window configuration.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. **Duration Object**: This format throttles executions for a duration relative to the time of the first trigger. It follows the same structure as the fixed window configuration.
2. **Duration object**: This format throttles executions for a duration relative to the time of the first trigger. It follows the same structure as the fixed window configuration.

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.

2 participants