Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. artifex

artifex

MITGov0.5.1

A simple in-memory job queue for Go with worker-based dispatching and cron scheduling.

GitHubGitHub
214 stars14 forks0 contributors

What is artifex?

Artifex is a simple in-memory job queue library for Go that facilitates asynchronous task execution using a worker-based dispatching model. It allows developers to queue and schedule jobs for background processing, supporting immediate, delayed, periodic, and cron-based execution. The library solves the need for lightweight, concurrent job management without relying on external message brokers or complex infrastructure.

Target Audience

Go developers building applications that require background job processing, such as web servers handling async tasks, scheduled maintenance jobs, or periodic data processing. It's particularly suited for projects needing a simple, self-contained job queue without external dependencies.

Value Proposition

Developers choose Artifex for its minimalistic design, ease of integration, and straightforward API that reduces the complexity of implementing job queues in Go. Its in-memory nature and built-in support for cron scheduling via the robfig/cron library provide a reliable alternative to heavier solutions like Redis or message brokers for many use cases.

Overview

Simple in-memory job queue for Golang using worker-based dispatching

Use Cases

Best For

  • Handling background tasks in Go web applications without external queues
  • Scheduling periodic maintenance or cleanup jobs in Go services
  • Implementing lightweight cron job functionality in Go projects
  • Managing concurrent job processing with a fixed worker pool
  • Processing async tasks with configurable delays and intervals
  • Building simple job queues for prototyping or small-scale applications

Not Ideal For

  • Applications requiring job persistence across process restarts or server crashes
  • Distributed systems that need job queues to scale horizontally across multiple instances
  • Projects needing advanced job management features like automatic retries, prioritization, or built-in monitoring

Pros & Cons

Pros

Minimal Dependencies

Relies only on standard Go libraries and the robfig/cron library for cron scheduling, keeping the library lightweight and easy to integrate without external systems.

Flexible Scheduling

Supports immediate, delayed, periodic, and cron-based job dispatch via methods like Dispatch, DispatchIn, DispatchEvery, and DispatchCron, as shown in the README example code.

Easy to Use API

Offers a straightforward API with intuitive methods such as NewDispatcher, Start, and various Dispatch functions, requiring minimal boilerplate for common job queue tasks.

Configurable Concurrency

Allows setting the number of workers and maximum queue size during initialization, providing control over resource usage and throughput for background processing.

Cons

No Job Persistence

Jobs are stored in memory, so all queued and scheduled jobs are lost if the application crashes or restarts, making it unreliable for critical tasks.

Limited Advanced Features

Lacks common job queue functionalities like automatic retry mechanisms, job prioritization, and detailed logging or monitoring tools, which are essential for complex workflows.

Single-Instance Limitation

Being in-memory, it cannot distribute jobs across multiple application instances, restricting its use in horizontally scaled or high-availability deployments.

Frequently Asked Questions

Quick Stats

Stars214
Forks14
Contributors0
Open Issues1
Last commit3 months ago
CreatedSince 2018

Tags

#in-memory#cron-jobs#job-scheduler#worker-pool#asynchronous-processing#background-jobs#golang#concurrency#go#queue-workers#job-queue#task-scheduling

Built With

G
Go

Included in

Go169.1k
Auto-fetched 6 hours ago

Related Projects

antsants

🐜🐜🐜 ants is the most powerful and reliable pooling solution for Go.

Stars14,503
Forks1,437
Last commit2 months ago
concconc

Better structured concurrency for go

Stars10,430
Forks358
Last commit7 days ago
tunnytunny

A goroutine pool for Go

Stars4,026
Forks309
Last commit3 years ago
goworkergoworker

goworker is a Go-based background worker that runs 10 to 100,000* times faster than Ruby-based workers.

Stars2,847
Forks243
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub