A zero-dependency debouncing solution for ActiveJob. Uses Redis GETSET for atomic dispatch-time gating — only 1 job enters the queue per debounce window. Subsequent calls are true no-ops (nothing queued). Includes crash recovery via expired timestamp detection. Works with any ActiveJob backend: Sidekiq, GoodJob, Solid Queue, Resque, etc.
Required Ruby Version
>= 2.7.0
Authors
Mohamed Bouzentm