@wolfstar/plugin-broker. The plugin distributes gateway events across processes over Redis Streams, with consumer-group semantics and at-least-once delivery. For the weekly summary across all packages, see the changelog overview.
0.7.0 (2026-10-20)
New features
- Own
stars.configkey — The module setsmeta.configKey, so you can write its options under the top-levelbrokerkey ofstars.configinstead of the[specifier, options]tuple ofmodules. The tuple still works and is merged over the key. The key is typed indefineConfigonce the module is imported instars.config.ts. (#259)
Updates
- New optional peer —
@wolfstar/schema(^0.9.0) is a new optional peer that carries theStarsConfigtype the keys extend. - Dependencies — Updated
@wolfstar/plugin-cacheto0.8.0.
Migration
@wolfstar/kitpeer raised — The@wolfstar/kitpeer range moves from^0.1.0to^0.2.0, the first version that readsconfigKey. If your project uses@wolfstar/kit0.1, update it.
0.6.0 (2026-10-17)
New features
- Worker-only dispatch listeners —
forwardGatewayDispatchesmarks aGatewayClientas forwarding (forwardsDispatches) until its stop function is called, through the new optionalGatewayDispatchEmitterLike#markDispatchesForwarded. Listeners registered withRegisterAsDispatchListenerfrom@wolfstar/plugin-gatewaythen run on the workers only. Emitters without it forward as before. (#245)
Bug fixes
guildDeletefor guilds dropped onREADY— When aREADYno longer lists a cached guild (the bot left it while offline), itsGUILD_DELETEis now forwarded like any other dispatch, so a worker’sguildDeletelisteners clean these guilds up too. (#247)
0.5.1 (2026-10-07)
Updates
- Dependencies — Updated
@wolfstar/plugin-cacheto0.7.0.
0.5.0 (2026-10-05)
New features
/moduleand/pluginentrypoints — Adds@wolfstar/plugin-broker/moduleand@wolfstar/plugin-broker/plugin. List the module inmodulesinstars.config, or pass thedefinePluginfactory toplugins. Both need@wolfstar/http-framework6.1 (and@wolfstar/kitfor the module)../registeris unchanged and still supports framework v3, v5, and v6. (#192)
Updates
- Dependencies — Updated
@wolfstar/plugin-cacheto0.6.0.
0.4.1 (2026-10-04)
Updates
http-framework6 support — The peer range now accepts@wolfstar/http-framework^6.0.0. (#176)
0.4.0 (2026-10-02)
New features
replayGatewayDispatches— Replays the dispatches thatforwardGatewayDispatchespublishes on aGatewayClientthat never connects to Discord. Your workers can runEventGatewayListenerpieces with the same structures and previous state (oldarguments) as the gateway process. (#168)- Entry metadata — Stream entries gain optional
state(the previous state of the dispatch’s entity, encoded like the payload),shard, andsequence(the gateway sequence number) fields. Pass them topublishasoptionsand read them fromBrokerMessage. Entries without them, and consumers unaware of them, work as before.
Updates
- Dependencies — Updated
@wolfstar/plugin-cacheto0.5.1.
0.3.1
Updates
- Cache alignment — Updated to
@wolfstar/plugin-cache0.5.0.
0.3.0
New features
- Claim idle entries —
claimIdleclaims (XAUTOCLAIM) entries that any consumer of the group left pending for too long, for example one that crashed and never restarted under the same name. - Dead-letter stream —
maxDeliveriesmoves an entry that keeps failing to a dead-letter stream instead of retrying it forever. Set the stream withdeadLetterStream(<stream>:deadby default). - Graceful shutdown —
shutdownSignalsstops the consumer on the given process signals. The consumer awaits the in-flight entry before letting the signal end the process. forwardGatewayDispatches— Publishes every dispatch a@wolfstar/plugin-gatewayGatewayClientreceives onto a broker, once it is written to the client’s cache.
Bug fixes
- Pending entries drain — A consumer could never drain its own pending entries: an entry that failed again was re-read forever, so the consumer never moved on to new entries. It now moves on.
- Trimmed entries — An entry trimmed from the stream while pending is now acknowledged instead of failing to decode.
0.2.0
New features
- New package —
@wolfstar/plugin-brokerdistributes gateway events across processes over Redis Streams.createBrokerpublishes events.ClientOptions.brokerconfigures aBrokerConsumer, started automatically once the client starts listening. The consumer reads events through a consumer group and redelivers a restarted consumer’s own pending entries. BrokerListenerpieces — Loaded from thelistenersdirectory, likeEventGatewayListenerin@wolfstar/plugin-gateway. Listeners are typed per event through an augmentableBrokerEventsmap. An entry is acknowledged only once every matching listener has resolved, so a throwing listener leaves its entry pending.- Pluggable payload codec — Payloads are encoded with a
CacheCodecfrom@wolfstar/plugin-cache(jsonCodec()by default).
Updates
- Dependencies — Updated
@wolfstar/plugin-cacheto0.4.0.