Queues for the serverless era

Scheduling background jobs has never been easier. Never skip a beat

retry-queue.ts
type-safe.ts
package.json
// Interruptible workflows
const retryq = createQueue('retry', async ({ retry }) => {
  try {
    // do something
  } catch(error) {
    return retry({ error }).afterYears(1) // 🤯
  }
})

Introduction

Qron makes fun and painless creating background jobs and crons for serverless frameworks. The infrastructure landscape has evolved greatly. We now have edge streaming and global deployments. But a key component of any saas application is the usage of background jobs or workflows to process long running tasks or retry really important duties we cannot afford to miss.

Currently the landscape for serverless background jobs is extremely lacking. This is where Qron comes in.

Qron offers the access to a queue system without having to cut costs on ergonomics, performance, and type-safety. Creating a queue with Qron does not involve any configuration or complex infrastructure provisioning or monitoring. So you can stay focused on what matter the most to you.

Qron is a tiny, high-performance queuing system designed to support all these background execution features. It is backed by Postgres and made in Go, using crafted sql and batching semantics. Ensuring high performance and reliability.

With Qron, you can be confident that your background jobs will always be executed on time, ensuring that your application runs smoothly and your customers stay happy.

Features

  • Simple and efficient queuing system for background jobs and cron jobs
  • Open source and MIT licensed
  • High performance and reliability backed by Postgres and Go
  • Easy to integrate with your existing infrastructure
  • Supports stateless workflows
  • delayed job execution
  • Integrates with your serverless framework of choice

What’s with the name?

The name Qron is a combination of the words queue and cron reflecting its primary functions.

How it Works

Qron operates by delivering tasks to be executed by the assigned handler. Each task contains a payload and a schedule for execution. When the scheduled time arrives, the task is executed and monitored in the background, allowing for serverless handlers to take their time for the processing. When the taks completes, the respective status and state of the task are updated. Allowing for later stateful execution until a terminal state is reached. Read more about the architecture in the arch overview section.

To stay up to date with latest features, join the Qron community on Discord.