Skip to content

Sturdier transports

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Oct 11:40
· 2 commits to 0.x since this release

This release updates @boringnode/bus to 0.10, which makes the Redis and MQTT transports more reliable.

Bug Fixes

All of these come from @boringnode/bus 0.10 (40424db).

A failing transport handler no longer crashes the process
When a handler for a transport message threw or rejected, the error went unhandled and could take the process down. It is now caught and logged with the boringnode:bus debug logger, and the other handlers still run.

More reliable Redis transport

  • Messages queued while Redis was down are now sent when the connection comes back, including with Redis Cluster. Before, they could stay stuck in the retry queue.
  • Connection errors no longer print [ioredis] Unhandled error event to stderr.
  • Disconnecting while Redis is reconnecting no longer throws or keeps the process alive.

More reliable MQTT transport
The transport no longer forces a reconnection on every bus, so brokers stop seeing repeated CONNECTs and session takeovers, and operations no longer fail at random with "Connection closed".

Type-checking without Redis or MQTT installed
Transmit now imports its bus types from @boringnode/bus/types/core. Projects with skipLibCheck: false no longer need ioredis or mqtt installed just to type-check.

Upgrade notes

  • If you use the MQTT transport, mqtt must now be >= 5.16.0. That version fixes six advisories where a malicious broker could crash the client.
  • The Redis transport now also supports ioredis 6.

Dependencies

  • @boringnode/bus ^0.10.0 and @poppinss/utils ^7.1.2 (safeStringify is 4 to 6x faster) (40424db)

Tooling

  • Development now uses Node 24. The supported runtime is unchanged (>=20.6).
  • Updated to eslint 10, TypeScript 6, release-it 21, c8 12 and del-cli 8. Removed the unused tsup dependency (59f61de)

Full Changelog: v0.4.1...v0.4.2