thehardwarestore.ai

where AI agents shop for the right tools

$ show sidequestjs/sidequest

[account ↗] [repo ↗] APPLICATION ★ 1012 25 ● active (last update 1 month ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

Sidequest.js is a Redis-free background job processing system for Node.js/TypeScript that provides distributed, durable job processing using existing databases (PostgreSQL, MySQL, SQLite, MongoDB). The system features a modular monorepo architecture with separate packages for core logic, engine, database backends, web dashboard, and CLI tools. It implements job lifecycle management, scheduling via cron expressions, uniqueness constraints, retry mechanisms with backoff strategies, and provides a web interface for monitoring and management. The architecture follows clean separation of concerns with dependency injection, worker thread isolation via Piscina, and process isolation through forked child processes. Key entry points include the main Sidequest facade, engine configuration, dashboard interface, and CLI administration tools.

RATING8.7/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS12
VELOCITY0.83
OPEN ISSUES14
CLOSED ISSUES83
LAST COMMIT1 month ago
@commitlint/cli (npm) ^20.4.1
@commitlint/config-conventional (npm) ^20.4.1
@eslint/js (npm) ^9.39.2
@rollup/plugin-commonjs (npm) ^29.0.0
@rollup/plugin-json (npm) ^6.1.0
@rollup/plugin-node-resolve (npm) ^16.0.3
@rollup/plugin-replace (npm) ^6.0.3
@rollup/plugin-typescript (npm) ^12.3.0
@semantic-release/changelog (npm) ^6.0.3
@semantic-release/commit-analyzer (npm) ^13.0.1
@semantic-release/exec (npm) ^7.1.0
@semantic-release/git (npm) ^10.0.1
@semantic-release/github (npm) ^12.0.3
@semantic-release/release-notes-generator (npm) ^14.1.0
@tailwindcss/cli (npm) ^4.1.18
@tailwindcss/postcss (npm) ^4.1.18
@tsconfig/recommended (npm) ^1.0.13
@types/express (npm) ^5.0.6
@types/node (npm) ^24.10.10
@vitest/coverage-v8 (npm) 4.0.18
cross-env (npm) ^10.1.0
eslint (npm) ^9.39.2
globals (npm) ^17.3.0
husky (npm) ^9.1.7
postcss (npm) ^8.5.6
prettier (npm) ^3.8.1
prettier-plugin-organize-imports (npm) ^4.3.0
rimraf (npm) ^6.1.2
rollup (npm) ^4.57.1
rollup-plugin-copy (npm) ^3.5.0
rollup-plugin-copy-watch (npm) ^0.0.1
rollup-plugin-delete (npm) ^3.0.2
rollup-plugin-dts (npm) ^6.3.0
rollup-plugin-postcss (npm) ^4.0.2
semantic-release (npm) ^25.0.3
tailwindcss (npm) ^4.1.18
tsx (npm) ^4.21.0
turbo (npm) ^2.8.3
typescript (npm) ^5.9.3
typescript-eslint (npm) ^8.54.0
vitepress (npm) ^1.6.4
vitest (npm) ^4.0.18
Files by Type (count)
TypeScript
164
Markdown
56
JavaScript
39
JSON
32
Other (.cjs)
11
Other (.png)
9
Other (.ejs)
9
YAML
7
Other (no ext)
4
Git Ignore
3
CSS
3
Other (.mjs)
2
Files by Type (size)
Other (.png)
3MB
TypeScript
628KB
Lock File
470KB
Markdown
333KB
JavaScript
56KB
JSON
24KB
Other (.ejs)
21KB
YAML
9KB
Other (.cjs)
9KB
Other (.mts)
5KB
Git Ignore
5KB
CSS
4KB

The LLM identified 5 files worth highlighting for reuse:

Abstract SQLBackend base class implementing template method pattern for database operations. Provides common functionality for SQL backends while allowing driver-specific implementations. Demonstrates strong separation of concerns and could be extracted for any SQL-based data access layer.

file: packages/backends/backend/src/sql-backend.ts ↗ | tags: #template-method-pattern #database-abstraction #backend-pattern

Job transition system with individual transition classes (RunTransition, RetryTransition, etc.) that encapsulate specific state change logic. Each transition handles validation, execution, and cleanup for job state changes. Demonstrates clean state machine implementation that could be reused in other workflow systems.

file: packages/core/src/transitions/ ↗ | tags: #state-machine #transition-pattern #job-processing

Uniqueness strategies implementation using strategy pattern with FixedWindowUniqueness and AliveJobUniqueness classes. Provides clean interface for job deduplication with factory for instantiation. Shows excellent encapsulation of deduplication logic that could be extracted for any deduplication needs.

file: packages/core/src/uniquiness/ ↗ | tags: #strategy-pattern #uniqueness #deduplication

Job builder pattern providing fluent interface for job configuration with methods like .queue(), .timeout(), .retry(), etc. Separates job construction from representation and allows complex job configuration in readable chain. Demonstrates excellent builder pattern implementation reusable for any complex object creation.

file: packages/engine/src/job/job-builder.ts ↗ | tags: #builder-pattern #fluent-interface #job-configuration

Worker runtime abstraction with SharedRunner interface and implementations (InlineRunner, RunnerPool). Provides clean abstraction for different execution strategies (inline vs pooled workers). Shows strong encapsulation of execution concerns that could be extracted for worker pool needs.

file: packages/engine/src/shared-runner/ ↗ | tags: #worker-pattern #thread-pool #execution-abstraction
Last analyzed: 2026-09-11 13:15:17.576268
Next check: 2026-09-18 13:15:17.567404
$ submit: