Skip to content

Releases: eventials/goevents

Improve AMQP Producer: robust reconnection, topology setup retries and channel readiness gate

03 Sep 13:15
cfb04d4

Choose a tag to compare

✨ Release Notes

🔧 AMQP Producer Improvements

This release introduces major changes to how the AMQP Producer handles connection loss and reconnection. The code was restructured to eliminate race conditions and intermittent failures that previously caused errors such as:

  • connection/channel is not open;
  • Error setting up topology after reconnection (504).

With this release, the Producer now has a robust and predictable reconnection flow.

🚀 Key Changes

Implemented a readiness gate (readyCh) that blocks drainInternalQueue until the topology is fully configured.

Added a reconfiguration mutex (reconfMu) to guarantee atomic swaps of channel, notifyConfirm, and notifyClose.

handleReestablishedConnnection now includes retry with backoff until the topology is successfully rebuilt, and only resumes publishing when everything is stable.

drainInternalQueue now retries publishing on errors or timeouts without terminating its goroutine.

The "Connection reestablished" log was moved to occur after topology configuration, ensuring the log reflects the actual state of the Producer.

🛡 Expected Impact

Greater resilience in RabbitMQ connection drop scenarios.

No more false positives where logs claimed “reestablished” while the channel was still unavailable.

Stable publishing flow, reducing risks of message loss or producer deadlock.

👉 This release is recommended for all environments using the AMQP Producer, especially under high-load or network instability conditions.

Fix msg timestamp when publish

22 Oct 00:39

Choose a tag to compare

Fix msg timestamp when publish

Event timestamp using milliseconds

21 Oct 22:43

Choose a tag to compare

Event timestamp using milliseconds

Max delayed message in AMQP

29 Feb 18:13
bdc4f9f

Choose a tag to compare

Merge pull request #53 from skrater/master

max delayed message

Manual ack nack or reject messages

24 Jun 22:14
70c2e9b

Choose a tag to compare

Merge pull request #52 from skrater/master

Manual ack nack or reject messages

Less logs in consumer when handler returns error

20 May 19:55
f20dc5f

Choose a tag to compare

Merge pull request #51 from skrater/fix-producer

Don't log errors in consumer event

Fix producer

20 May 15:37
399e6f3

Choose a tag to compare

Merge pull request #50 from skrater/fix-producer

Increased confirms channel length

Close channel when publish was timed out

14 May 15:45
f903bc0

Choose a tag to compare

Merge pull request #49 from skrater/master

customize publish timeout

AMPQ Producer code cleanup

01 May 17:10
f628e92

Choose a tag to compare

Merge pull request #48 from skrater/master

Remove useless code

Check channel close in producer

01 May 16:19
1e5eeaa

Choose a tag to compare

Check channel close in producer