You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Logger calls eagerly construct large payload objects on publish/failure #27
Multiple log sites pass the entire message body as part of the structured log fields. Even when the configured log level discards the line, the payload reference is captured and most structured-log transports will JSON.stringify it. For high-throughput publishers / heavy retry traffic, this is real GC pressure.
Where
src/core/RunMQ.ts:76-80 — publish() logs { topic, correlationId, message } at info level
src/core/consumer/processors/RunMQFailureLoggerProcessor.ts:13-16 — failure logs include message: message.message
src/core/consumer/processors/RunMQRetriesCheckerProcessor.ts:38-45 — max-retries log also includes message: message.message
Failure mode
For an MB-sized payload at 1k msg/s, this is GB/s of allocations the GC has to clean up — independent of whether the line is actually written.
Proposed fix
Drop message from the publish info log (correlationId is enough for tracing).
For failure logs, log a truncated preview or just the size:
Activity
perf: stop logging full message payload by default (#27) (#45)
iifawzi commentedon May 10, 2026
closed via #45
chore(release): 2.0.0 [skip ci]