PostHog / PostHog/posthog-ruby
Make retry queue durable across transient delivery failures
Open
Nobody has claimed this yet.
bug
enhancement
- Dominant language
- Ruby
- Stars
- 36
- Forks
- 34
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 18
Description
Summary
Make the Ruby SDK retry queue durable across transient delivery failures.
Spec
sdk-specs/openspec/specs/retry-queue/spec.md
Current evidence
The SDK audit found that SendWorker removes events from the queue before send and does not requeue on non-200/transient failure.
Expected behavior
- Keep or requeue events after retryable/transient delivery failures.
- Deliver retained events after a later success.
- Bound retained events by queue capacity.
- Drop non-retryable failures appropriately.
- Add tests for 503/network failure retention and later delivery.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read sdk-specs/openspec/specs/retry-queue/spec.md and trace SendWorker, focusing on when events are removed and how delivery failures are handled. Add tests covering 503 and network-failure retention, later successful delivery, queue-capacity bounds, and appropriate dropping of non-retryable failures; done means retained events are delivered after recovery.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100