Registry / database / delaykit

delaykit

JSON →
library0.11.0jsnpmunverified

Durable wake-ups for TypeScript apps and agents, providing scheduling, debouncing, and retry primitives backed by Postgres or SQLite. Current stable version is 0.11.0 (pre-1.0, breaking changes possible in minor releases). It differentiates from workflow engines (Temporal, Inngest) and job queues (Bull, RabbitMQ) by running handlers in-process without external services, with zero runtime dependencies and serverless compatibility (Vercel, Lambda). Release cadence is monthly with semantic versioning.

npm install delaykit
INSTALL
IMPORT
SIG · DELAYKIT
D
delaykit
databasejavascriptv0.11.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

DelayKit
import { DelayKit } from 'delaykit'
const DelayKit = require('delaykit')
ESM-only package, no CJS support. Use named import.
MemoryStore
import { MemoryStore } from 'delaykit/memory'
import { MemoryStore } from 'delaykit'
Exported from a subpath 'delaykit/memory', not from main entry.
PostgresStore
import { PostgresStore } from 'delaykit/postgres'
import { PostgresStore } from 'delaykit'
Exported from subpath 'delaykit/postgres'. Requires optional peer 'postgres'.
PollingScheduler
import { PollingScheduler } from 'delaykit/polling'
Only scheduler currently available; others like WebhookScheduler are planned. Exported from 'delaykit/polling'.

Creates a DelayKit instance with MemoryStore and PollingScheduler, registers a handler, schedules a reminder, and stops after execution. Demonstrates the core primitives without a database.

import { DelayKit } from 'delaykit'; import { MemoryStore } from 'delaykit/memory'; import { PollingScheduler } from 'delaykit/polling'; const dk = new DelayKit({ store: new MemoryStore(), scheduler: new PollingScheduler({ maxConcurrent: 10 }), }); dk.handle('send-reminder', async ({ key }) => { // Simulate sending an email console.log(`Reminder for user ${key}`); }); await dk.start(); // Schedule a job after 5 seconds await dk.schedule('send-reminder', { key: 'user_123', delay: '5s' }); // Wait for job to execute await new Promise(resolve => setTimeout(resolve, 6000)); await dk.stop();
Debug
Known issues
breakingMinor releases before 1.0 may include breaking changes. See changelog before upgrading.
fix
Pin to exact version and review changelog on each upgrade.
affects: <1.0
gotchaAt most one active job per (handler, key) pair. Running schedule with same handler and key while a pending job exists will replace the existing job.
fix
Use unschedule before rescheduling if you want to cancel and start fresh, or rely on the idempotent behavior.
affects: >=0.1.0
gotchaMemoryStore jobs are ephemeral: they are lost on process restart. Use PostgresStore or SQLiteStore for durable jobs in production.
fix
Swap store to PostgresStore or SQLiteStore for production environments.
affects: >=0.1.0
deprecatedDelayKit is pre-1.0; API may change without major version bump.
fix
Monitor changelog and pin to specific version.
affects: >=0.1.0 <1.0
Errors
Common errors & fixes
Error: Cannot find module 'better-sqlite3'
SQLiteStore requires optional peer dependency better-sqlite3 when using Node.js.
fix
Run `npm install better-sqlite3` or use a different store.
TypeError: delaykit is not a function
Default import used when library only supports named import.
fix
Replace `import delaykit from 'delaykit'` with `import { DelayKit } from 'delaykit'`.
Error: Store must implement 'schedule', 'unschedule', 'pending', 'poll', 'reclaim'
Custom store does not implement all required methods.
fix
Ensure the store class implements the full Store interface from delaykit.
Upgrade
Version history
0.11.0latest on npm
Audit
Dependencies
@posthook/nodeoptionalOptional peer for PostgreSQL store hook support
better-sqlite3optionalOptional peer for SQLite store (Node.js)
postgresoptionalOptional peer for PostgreSQL store
Agent activity
4 hits · last 30 days
node
4
Resources
delaykit — npm install delaykit · libregistry