Skip to content

v0.13.0

Choose a tag to compare

@justapithecus justapithecus released this 12 Mar 22:14
· 35 commits to main since this release
1758287

Pluggable Redis Streams event sink for real-time event delivery

Summary

v0.13.0 introduces a pluggable event sink model with a Redis Streams backend. Unlike post-run adapters, event sinks publish every event in real time as the executor produces it, enabling downstream consumers to watch events across all runs on a single stream.

Highlights

  • Redis Streams event sink — publishes every event via XADD during run execution with configurable stream key, max length, TTL, and retry behavior (#222, #223)
  • Fan-out event sink — multiple sinks can be activated simultaneously with independent delivery semantics (mandatory fails the run on error; best_effort logs and continues)
  • --event-sink CLI flag — repeatable flag to activate sinks (lode, redis); both can be used together in the same run
  • Full CLI flag set — --event-sink-redis-url, --event-sink-redis-stream-key, --event-sink-redis-max-len, --event-sink-redis-ttl, --event-sink-redis-timeout, --event-sink-redis-retries, --event-sink-redis-delivery
  • Contract updates — CONTRACT_INTEGRATION.md and CONTRACT_CLI.md extended with event sink model, delivery semantics, and flag specifications

Upgrade Notes

  • No breaking changes. Existing runs without --event-sink flags behave identically to v0.12.x.
  • To enable real-time event streaming, add --event-sink redis --event-sink-redis-url redis://localhost:6379 to your quarry run command.
  • Event sinks and post-run adapters (--adapter) can be used together in the same run.

References

  • #222 — Feature request: pluggable Redis Streams event sink
  • #223 — Implementation PR
  • #224 — v0.13.0 release prep

Full Changelog: v0.12.2...v0.13.0