Skip to content

v0.10.0 - Standard/FIFO Queue Modes with Race Condition Fix

Choose a tag to compare

@mariotoffia mariotoffia released this 30 Jan 21:17
· 6 commits to main since this release
bf0f753

Summary

  • Refactored queue architecture into separate Standard and FIFO implementations
  • Implemented race condition fix for FIFO queues with post-lock verification
  • Added comprehensive test suite including race condition tests, benchmarks, and simulations
  • Updated Makefile with separate test (unit only) and test-ci (integration) targets
  • Removed runtime-alterable SetRandomDigits - now constructor-only with minimum 8 digits
  • Fixed test infrastructure with proper container cleanup and DB readiness checks

Breaking Changes

  • SetRandomDigits() method removed from Queue interface - random digits are now set at construction time only (minimum 8 digits enforced)

New Features

  • FIFO Queue: New QueueFIFO type with strict ordering per message group and exactly-once delivery per group
  • Standard Queue: Renamed from original implementation, best-effort FIFO with high throughput
  • Factory Functions: New() and NewWithClient() for easy queue creation

Test Infrastructure

  • make test - Run unit tests only (no Docker required)
  • make test-ci - Run all tests including integration (requires Docker)
  • make benchmark - Run benchmarks with memory, CPU profiling, and race detection