libs

module
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2026 License: Apache-2.0

README

libs

🚀 Usage:

Install/Update Tools:

make update-tools

Run Modernize:

make modernize

Run CI Tasks:

make ci

queue

Work queue with single-worker delivery, priority + FIFO, delays, retries, and dead letter routing. Backends: inmem, sqlite, pgx (Postgres), redis.

import (
    "github.com/enverbisevac/libs/queue"
    "github.com/enverbisevac/libs/queue/inmem"
)

svc := inmem.New()
defer svc.Close(ctx)

cons, _ := svc.Subscribe(ctx, "emails", func(ctx context.Context, j *queue.Job) error {
    return sendEmail(j.Payload)
}, queue.WithConcurrency(4))
defer cons.Close()

_ = svc.Enqueue(ctx, "emails", []byte("hello@example.com"))

See queue/doc.go for the idempotency contract and docs/superpowers/specs/2026-04-08-queue-design.md for design rationale.

Directories

Path Synopsis
Package httputil simplifies the decoding of HTTP requests (REST API) into Go structs for easier consumption.
Package httputil simplifies the decoding of HTTP requests (REST API) into Go structs for easier consumption.
pgx
pgx
sql
Package sql provides shared building blocks for database/sql-based outbox.Store implementations.
Package sql provides shared building blocks for database/sql-based outbox.Store implementations.
sql/postgres
Package postgres provides a PostgreSQL implementation of outbox.Store using database/sql.
Package postgres provides a PostgreSQL implementation of outbox.Store using database/sql.
sql/sqlite
Package sqlite provides a SQLite implementation of outbox.Store using database/sql.
Package sqlite provides a SQLite implementation of outbox.Store using database/sql.
pgx
Package queue provides a work queue with single-worker delivery semantics (competing consumers).
Package queue provides a work queue with single-worker delivery semantics (competing consumers).
inmem
Package inmem provides a non-durable, in-process queue.Service.
Package inmem provides a non-durable, in-process queue.Service.
pgx
Package pgx provides a durable queue.Service backed by PostgreSQL using jackc/pgx/v5.
Package pgx provides a durable queue.Service backed by PostgreSQL using jackc/pgx/v5.
queuetest
Package queuetest provides a backend-agnostic conformance test suite for queue.Service implementations and a deterministic FakeClock for use in backend-specific tests.
Package queuetest provides a backend-agnostic conformance test suite for queue.Service implementations and a deterministic FakeClock for use in backend-specific tests.
redis
Package redis provides a durable queue.Service backed by Redis.
Package redis provides a durable queue.Service backed by Redis.
sqlite
Package sqlite provides a durable, embedded queue.Service backed by SQLite.
Package sqlite provides a durable, embedded queue.Service backed by SQLite.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL