Releases: goadesign/pulse
Releases · goadesign/pulse
pulse v1.4.4
Summary
This release adds a local-only shutdown API for distributed tickers and includes several rmap/pool robustness improvements.
Highlights
- pool: add
(*pool.Ticker).Close()to stop a node’s participation in a distributed ticker without deleting the shared ticker-map entry.- Use this for safe local restarts/handoff in multi-node pools.
Close()does not close the tick channel (matchingtime.Tickersemantics).
Full changelog (v1.4.3 → v1.4.4)
2f3aa04pool: add Ticker.Close6365d9fpool: cleanup maps on shutdownf9d8f4brmap: add revisioning and list improvements6037b55Bump golang.org/x/net from 0.36.0 to 0.38.0 (#56)28ed733rmap: robustness + test Redis config (#63)
Compatibility
- Backwards compatible: existing
Stop()behavior is unchanged (still deletes the shared ticker-map entry).
Links
- Compare: v1.4.3...v1.4.4
pulse v1.4.3
Fixes
- Fix rmap SetAndWait data race: remove the waiter notification channel close and make waiter notifications non-blocking, eliminating a race found by FAIL . [setup failed] in downstream consumers (notably goa-ai registry tests).
- Fix pool hashing data race: make the Jump Consistent Hash implementation concurrency-safe when routing/rebalancing worker events.
Notes
- No API changes; this is a bugfix release focused on race-detector correctness and stability under concurrency.
v1.4.2
What's Changed
- Fix potential job loss during concurrent worker cleanup/rebalancing under churn
- Add regression test
TestJobLossDuringConcurrentWorkerCleanupto reproduce cascading failure scenario - Fix weather example event unmarshalling to correctly error on truncated payloads
Full Changelog: v1.4.1...v1.4.2
v1.4.1
What's Changed
- Fix potential panics caused by an invalid regexp by returning an error by @douglaswth in #53
- Fix streaming Reader race condition by @douglaswth in #55
Full Changelog: v1.4.0...v1.4.1
v1.4.0
v1.3.0
v1.2.0
What's Changed
- Enforce unique job keys:
DispatchJobnow returns an error when dispatching a job with a key that already exists - Proper support for empty string values in rmap: setting an empty string value then calling
Getnow returns empty string and true. - Update dependencies
- Adds
SetIfNotExiststo replicated maps that sets a value only if it isn't already in the map. - Protect rmap.SetAndWait against corner cases
Full Changelog: v1.1.0...v1.2.0
v1.1.0
What's Changed
- Add back option to set reading block duration to node options by @nitinmohan87 in #46
- Add a debug log when worker fails to start a job by @raphael in #47
- Fix a few issues by @raphael in #48
New Contributors
- @nitinmohan87 made their first contribution in #46
Full Changelog: v1.0.6...v1.1.0
v1.0.6
What's Changed
- Fix rmap set debug log cardinality by @douglaswth in #17
- Reset timer when changing ticker duration by @raphael in #18
- Series of small fixes by @raphael in #20
- Stop workers before requeuing their jobs by @raphael in #22
- Test requeuing by @raphael in #21
- Fix issues with idle message requeuing by @raphael in #23
- Delete consumers when stale instead of reusing them. by @raphael in #24
- Add CI workflows by @raphael in #25
- Remove requeued jobs by @raphael in #26
- Improve logging by @raphael in #27
- Set read block duration to half worker TTL by @raphael in #29
- Remove requeued job from job map by @raphael in #28
- Make sure to expect requeue event ID by @raphael in #30
- Log Node ID with node map logs by @raphael in #31
- Log existing workers when joining by @raphael in #32
- Make logging more consistent by @raphael in #33
- Fix live lock with requeueJobs by @raphael in #34
- Periodically check for inactive workers by @raphael in #35
- Don't retry requeuing jobs with missing payloads by @raphael in #36
- Properly delete stale workers with no job by @raphael in #37
- Add more tests by @raphael in #38
- Add ability to list jobs and workers by @raphael in #39
- Make sure all timestamps are UTC by @raphael in #40
- Log panics occurring in event handler goroutines by @raphael in #41
- Timeout DispatchJob if no dispatch return is received by @raphael in #42
- Delete stale consumers not associated with sinks by @raphael in #43
- Reduce lock contention by @raphael in #44
- Fix lost job on requeue by @raphael in #45
Full Changelog: v0.0.6...v1.0.6