Skip to content

v1.0: fix batch-lease duplicate execution, harden engine, add API/console/CI - #2

Merged
Yashbhu merged 1 commit into
mainfrom
v1.0-hardening
Oct 11, 2026
Merged

Yashbhu merged 1 commit into
mainfrom
v1.0-hardening

Conversation

@Yashbhu

@Yashbhu Yashbhu commented Oct 11, 2026

Copy link
Copy Markdown
Owner

sole/CI

Engine correctness:

  • Start a heartbeat for every claimed task at claim time and keep it alive until that task's ACK/requeue is committed. Previously only the task being executed was renewed, so in a batch (BATCH_SIZE>1) the tasks waiting behind it lost their lease and recovery ran them again. Adds TestWorkerBatchLeaseKeptAlive.
  • Store lease/scheduled expiries as fractional-second scores. Whole-second truncation silently shaved up to a second off short leases and expired them early; recovery/promotion comparisons now use fractional Redis TIME.
  • Delete task: in the ACK script and return the ids actually ACKed, so completed bodies no longer leak and fenced tasks are not counted as completed.
  • Drain gracefully on shutdown: infra loops stop, in-flight handlers get up to the drain timeout, then the rest are cancelled and the worker de-registered.

API / console:

  • HTTP/JSON read + control API (stats, queues, jobs, workers, DLQ, delayed, pause/resume/purge, retry/requeue/delete) with JWT + RBAC auth.
  • React + TanStack Start web console with login.
  • gRPC load generator.

Ship hygiene:

  • Apache-2.0 LICENSE, GitHub Actions CI (build/vet/test), .gitignore for binaries and node_modules, honest README (limitations, env config, at-least-once).

…sole/CI

Engine correctness:
- Start a heartbeat for every claimed task at claim time and keep it alive
  until that task's ACK/requeue is committed. Previously only the task being
  executed was renewed, so in a batch (BATCH_SIZE>1) the tasks waiting behind
  it lost their lease and recovery ran them again. Adds TestWorkerBatchLeaseKeptAlive.
- Store lease/scheduled expiries as fractional-second scores. Whole-second
  truncation silently shaved up to a second off short leases and expired them
  early; recovery/promotion comparisons now use fractional Redis TIME.
- Delete task:<id> in the ACK script and return the ids actually ACKed, so
  completed bodies no longer leak and fenced tasks are not counted as completed.
- Drain gracefully on shutdown: infra loops stop, in-flight handlers get up to
  the drain timeout, then the rest are cancelled and the worker de-registered.

API / console:
- HTTP/JSON read + control API (stats, queues, jobs, workers, DLQ, delayed,
  pause/resume/purge, retry/requeue/delete) with JWT + RBAC auth.
- React + TanStack Start web console with login.
- gRPC load generator.

Ship hygiene:
- Apache-2.0 LICENSE, GitHub Actions CI (build/vet/test), .gitignore for
  binaries and node_modules, honest README (limitations, env config, at-least-once).
Copilot AI balanced review requested due to automatic review settings October 11, 2026 18:40

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Yashbhu
Yashbhu merged commit 37dcd13 into main Oct 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants