A powerful, ORM-agnostic queue engine for PostgreSQL 12+, MariaDB, and MySQL. Handle background jobs, scheduled tasks, and recurring processes with ease.
import { MemoryQueueAdapter, Queue } from "@vorsteh-queue/core"
interface TEmailPayload {
to: string
subject: string
}
interface TEmailResult {
sent: boolean
}
const queue = new Queue(new MemoryQueueAdapter(), { name: "email-queue" })
queue.register<TEmailPayload, TEmailResult>("send-email", async ({ payload }) => {
// Send email logic here
return { sent: true }
})
await queue.add("send-email", { to: "user@example.com", subject: "Welcome!" })
queue.start()
Built for developers who need reliability, flexibility, and excellent developer experience
Everything you need to handle background processing in your applications
Execute tasks once with optional delays and priority levels
Set up repeating tasks with flexible intervals and cron expressions
Schedule jobs for specific dates and times with timezone support
Configurable retry strategies with exponential backoff and limits
Delay job execution with precise timing control
Process high-priority jobs first with customizable priority levels
Handle failed jobs with dedicated error queues and analysis
Monitor job status, performance metrics, and queue health
The name "Vorsteh Queue" is a tribute to our beloved German Spaniel. This breed is closely related to the Münsterländer, a type of pointing dog, known in German as a "Vorstehhund". Just as a pointing dog steadfastly indicates its target, Vorsteh Queue aims to reliably point your application towards efficient and robust background job processing.
The inspiration for naming a tech project after a dog comes from the delightful story of Bruno, the API client. It's a nod to the personal touch and passion that drives open-source development, much like the loyalty and dedication of our canine companions.
Vorsteh Queue is completely free and open source. Built by developers, for developers. No hidden costs, no vendor lock-in, no limitations. Use it in your personal projects, startups, or enterprise applications.
import { MemoryQueueAdapter, Queue } from "@vorsteh-queue/core"
interface TEmailPayload {
to: string
subject: string
}
interface TEmailResult {
sent: boolean
}
const queue = new Queue(new MemoryQueueAdapter(), { name: "email-queue" })
queue.register<TEmailPayload, TEmailResult>("send-email", async ({ payload }) => {
// Send email logic here
return { sent: true }
})
await queue.add("send-email", { to: "user@example.com", subject: "Welcome!" })
queue.start()