Skip to content

docs(pulse): deprecate @tsed/pulse and guide users to @tsed/agenda + Agenda v6 #3376

Description

@Romakita

Is your feature request related to a problem? Please describe.

@tsed/pulse should now be deprecated in favor of @tsed/agenda on top of Agenda v6.

Today the repository still presents @tsed/pulse as an actively documented integration:

  • package README: packages/third-parties/pulse/readme.md
  • tutorial page: docs/tutorials/pulse.md

This creates two issues:

  1. consumers can still start new integrations on top of @tsed/pulse
  2. the docs do not guide existing users toward the new recommended scheduling stack based on Agenda v6

Given the Agenda v6 migration work on @tsed/agenda, we should make the deprecation path explicit and update all Pulse docs accordingly.

Describe the solution you'd like

Deprecate @tsed/pulse at the package/documentation level and update its docs so users are redirected toward @tsed/agenda + Agenda v6.

Proposed scope

  1. Deprecate @tsed/pulse

    • mark the package as deprecated in its README and public-facing docs
    • make it clear that new projects should use @tsed/agenda
  2. Update Pulse documentation

    • update packages/third-parties/pulse/readme.md
    • update docs/tutorials/pulse.md
    • add migration notes in both places
  3. Point users to the replacement

    • recommend @tsed/agenda
    • recommend Agenda v6
    • link to the Agenda v6 migration guidance from Ts.ED docs

Documentation changes required

A. Add a deprecation banner

Both Pulse docs entry points should start with a clear notice, for example:

> [!WARNING]
> `@tsed/pulse` is deprecated.
> For new projects, use `@tsed/agenda` with Agenda v6.
> Existing `@tsed/pulse` users should plan a migration to `@tsed/agenda`.

B. Replace installation guidance

Current install guidance promotes Pulse directly:

-npm install --save @tsed/pulse @pulsecron/pulse
+npm install --save @tsed/agenda agenda @agendajs/mongo-backend

Equivalent updates are needed for yarn, pnpm, and bun.

C. Add migration notes

Both docs should include a migration section that explains the target stack:

  • replace @tsed/pulse with @tsed/agenda
  • replace @pulsecron/pulse with agenda
  • adopt Agenda v6 backend configuration using MongoBackend

Suggested config diff:

 import {Configuration} from "@tsed/di";
-import "@tsed/pulse";
+import "@tsed/agenda";
+import {MongoBackend} from "@agendajs/mongo-backend";
 
 @Configuration({
-  pulse: {
+  agenda: {
     enabled: true,
-    db: {
-      address: mongoConnectionString
-    }
+    backend: new MongoBackend({
+      address: mongoConnectionString
+    })
   }
 })
 export class Server {}

Suggested decorator/service diff:

-import {Pulse, Every, Define, PulseModule} from "@tsed/pulse";
+import {JobsController, Every, Define, AgendaModule} from "@tsed/agenda";
 
-@Pulse({namespace: "email"})
+@JobsController({namespace: "email"})
 export class EmailJobService {
   @Inject()
-  pulse: PulseModule;
+  agenda: AgendaModule;
 }

D. Add AI-oriented migration notes

Both docs should include a short structured section for AI-assisted migrations with explicit rewrites such as:

  • pulse config key → agenda
  • import "@tsed/pulse" → import "@tsed/agenda"
  • @Pulse(...) → @JobsController(...)
  • PulseModule → AgendaModule
  • @pulsecron/pulse dependency → agenda + @agendajs/mongo-backend
  • legacy db config → backend: new MongoBackend(...)

This should be written as concrete before/after examples so coding agents can apply the migration deterministically.

Describe alternatives you've considered

  1. Leave Pulse docs as-is

    • Pros: no doc churn
    • Cons: keeps sending users toward a package we no longer want to promote
  2. Remove Pulse docs entirely

    • Pros: strongest signal
    • Cons: removes migration help for existing users

Recommended path: keep the docs, but convert them into deprecation + migration guides.

Additional context

Affected files

  • packages/third-parties/pulse/readme.md
  • docs/tutorials/pulse.md

Relationship with Agenda v6 work

This issue depends on the new recommended scheduling path being @tsed/agenda + Agenda v6.

Related parent ticket:

  • feat(agenda): migrate @tsed/agenda to Agenda v6

Suggested implementation checklist

  • add deprecation banner to packages/third-parties/pulse/readme.md
  • add deprecation banner to docs/tutorials/pulse.md
  • replace install commands so they point to @tsed/agenda + Agenda v6 dependencies
  • add migration note in packages/third-parties/pulse/readme.md
  • add migration note in docs/tutorials/pulse.md
  • add AI-oriented migration rewrite section in both docs
  • ensure wording consistently tells users not to start new projects on @tsed/pulse

Acceptance criteria

  • @tsed/pulse docs clearly state the package is deprecated
  • both Pulse docs entry points redirect new users toward @tsed/agenda + Agenda v6
  • both Pulse docs include concrete migration notes and before/after diffs
  • both Pulse docs include AI-oriented migration notes for deterministic rewrites

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions