Skip to content

Releases: goadesign/pulse

pulse v1.6.2

19 Feb 01:53
b514884

Choose a tag to compare

Overview

This release updates Pulse to the latest Goa patch line and refreshes generated weather example artifacts to keep generated clients, transports, and OpenAPI specs aligned.

Highlights

  • Upgraded goa.design/goa/v3 to v3.25.3.
  • Regenerated weather example outputs under examples/weather/services/*/gen.
  • Updated generated mocks used by weather example clients.
  • Improved integration-test stability for Redis-backed pool tests:
    • better cleanup polling in testing/redis.go
    • explicit shutdown coverage in pool/node_test.go

Validation

  • ./scripts/test --force passes (rmap, streaming, pool).
  • go test ./examples/... passes.

Included Commit

  • b514884 Upgrade Goa to v3.25.3 and regenerate weather example outputs.

Full Changelog: v1.6.1...v1.6.2

pulse v1.6.1

19 Feb 01:17
12cedd4

Choose a tag to compare

What's Changed

  • Upgrade dependencies across the project.
  • Bump Go toolchain from 1.24.0 to 1.25.0.
  • Refresh key runtime and observability dependencies (goa, redis, gRPC, OpenTelemetry).

Commits

Full Changelog: v1.6.0...v1.6.1

pulse v1.6.0

18 Jan 20:21
0edda2f

Choose a tag to compare

Added

  • Replicated map (rmap) TTL support
    • Absolute TTL: rmap.WithTTL(ttl) sets expiry once (uses EXPIRENX).
    • Sliding TTL: rmap.WithSlidingTTL(ttl) refreshes expiry on every write.

Fixed

  • Prevent leaked per-stream sink metadata (map:stream:*) for TTL’d streams by applying the stream TTL policy to the sink consumer rmap (stream:<name>:sinks).
  • Stream.Destroy() now also clears the per-stream sink consumer map hash and publishes a reset notification (mirrors rmap destroy semantics).

Changes since v1.5.0

  • #66: rmap TTL + sink consumer-map cleanup

pulse v1.5.0

18 Jan 18:49
7743d61

Choose a tag to compare

Added

  • Stream TTL support (Redis streams): configure retention directly on streams.
    • Absolute TTL: options.WithStreamTTL(ttl) sets TTL once (uses EXPIRENX) so it never slides.
    • Sliding TTL: options.WithStreamSlidingTTL(ttl) refreshes TTL on each publish (uses EXPIRE).
    • TTL is applied on first stream key creation (first XADD) and also when a sink creates a stream via XGROUP CREATE ... MKSTREAM.

Notes

  • Default behavior is unchanged: if no TTL option is set, Pulse does not set a key expiry.
  • Negative TTL values now fail fast when creating a stream.

Changes since v1.4.4

  • #65: streaming TTL (absolute + sliding)
  • #64: rmap revisioned updates + JSON list helpers

pulse v1.4.4

24 Dec 21:36
2f3aa04

Choose a tag to compare

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 (matching time.Ticker semantics).

Full changelog (v1.4.3 → v1.4.4)

  • 2f3aa04 pool: add Ticker.Close
  • 6365d9f pool: cleanup maps on shutdown
  • f9d8f4b rmap: add revisioning and list improvements
  • 6037b55 Bump golang.org/x/net from 0.36.0 to 0.38.0 (#56)
  • 28ed733 rmap: robustness + test Redis config (#63)

Compatibility

  • Backwards compatible: existing Stop() behavior is unchanged (still deletes the shared ticker-map entry).

Links

pulse v1.4.3

15 Dec 07:41
104f627

Choose a tag to compare

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

12 Dec 07:38
a2ebdc3

Choose a tag to compare

What's Changed

  • Fix potential job loss during concurrent worker cleanup/rebalancing under churn
  • Add regression test TestJobLossDuringConcurrentWorkerCleanup to 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

12 Apr 18:39
5ed8559

Choose a tag to compare

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

05 Mar 19:01
d79f24b

Choose a tag to compare

What's Changed

  • pool: fix job payload cleanup during shutdown by @raphael in #52

Full Changelog: v1.3.0...v1.4.0

v1.3.0

19 Feb 04:57
2598358

Choose a tag to compare

What's Changed

  • pool: Enhance worker lifecycle management and job reliability by @raphael in #51

Full Changelog: v1.2.0...v1.3.0