awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
pgmq avatar

pgmq/pgmq

0
View on GitHub↗
4,976 estrellas·139 forks·PLpgSQL·PostgreSQL·6 vistaspgmq.github.io/pgmq↗

Pgmq

PGMQ es un sistema de cola de mensajes ligero implementado como una extensión de PostgreSQL para gestionar tareas asincrónicas. Funciona como un intermediario de mensajes respaldado por base de datos que aprovecha PostgreSQL para almacenamiento persistente, operaciones atómicas y entrega impulsada por notificaciones.

El sistema proporciona un modelo de cola compatible con SQS que cuenta con tiempos de espera de visibilidad y entrega retrasada. Admite un orden estricto de primero en entrar, primero en salir (FIFO) a través de claves de grupo y recuperación por lotes para garantizar el procesamiento secuencial de tareas relacionadas.

El proyecto cubre un ciclo de vida completo de mensajes, incluyendo producción, consumo mediante operaciones pop atómicas y gestión administrativa como purga de colas y control del ciclo de vida. Incluye capacidades de enrutamiento a través de patrones basados en temas y características de confiabilidad como colas de mensajes fallidos (dead letter queueing), archivo de mensajes y lógica de reintento. Se proporcionan herramientas de monitoreo para rastrear métricas operativas como la longitud de la cola y el rendimiento.

Features

  • Postgres Message Queueing - Implements a full asynchronous task processing system as a PostgreSQL extension using the database as the broker.
  • Database-Backed Brokers - A broker that leverages PostgreSQL for persistent storage, atomic operations, and notification-driven message delivery.
  • PostgreSQL Task Queues - Provides a lightweight message queuing system implemented as a PostgreSQL extension to manage asynchronous tasks.
  • Distributed Task Workers - Manages the delivery and consumption of tasks across multiple distributed worker processes.
  • Atomic Queue Transitions - Provides atomic operations to retrieve and delete messages in a single step to ensure at-most-once delivery.
  • Message Queues - Provides the primary mechanism for adding data payloads to a queue with optional delivery delays.
  • Message Consumption - Implements message retrieval mechanisms including long-polling and visibility timeouts to manage consumer access.
  • Message Deletion Operations - Provides capabilities to remove single or batch messages from the queue after successful processing.
  • Table-Based Storage - Uses dedicated PostgreSQL tables to store message payloads and metadata for persistent queue management.
  • FIFO - Provides a queueing system that ensures strict first-in-first-out ordering of messages using group keys.
  • Message Processing Timeouts - Implements visibility timeouts to prevent premature message redelivery while a task is being processed.
  • Visibility Timeout Controls - Provides granular control over message visibility timeouts to manage processing attempts and redelivery.
  • Atomic Pop Operations - Implements atomic pop operations that combine message retrieval and deletion in one transaction for at-most-once delivery.
  • Skip Locked Concurrency - Employs the FOR UPDATE SKIP LOCKED clause to allow multiple consumers to process messages without blocking each other.
  • FIFO Group Processing - Supports strict first-in-first-out ordering for related tasks using group keys to prevent race conditions.
  • FIFO Task Sequencing - Ensures strict order of operations for related tasks using group identifiers to prevent race conditions.
  • Group-Keyed FIFO Ordering - Maintains strict processing sequences for related messages using group keys and index-based sorting.
  • Database Insert Notifications - Employs Postgres NOTIFY events to alert consumers of new messages immediately without requiring constant polling.
  • Queue Purging - Ships a dedicated operation to clear all pending messages from a queue without deleting the queue itself.
  • Dead Letter Queues - Moves repeatedly failing messages to a separate dead-letter queue to prevent processing blocks.
  • Queue-Specific Metrics - Provides detailed operational statistics including queue length, message age, and overall throughput.
  • Message Requeuing - Implements the ability to re-inject failed messages into the queue by resetting their visibility timeouts.
  • Queue Lifecycle Management - Implements administrative tools for creating and deleting the database tables used for queue storage.
  • Topic Routing Patterns - Implements flexible message distribution using topics and wildcard patterns for complex data delivery.
  • SQS-Compatible Queues - Offers an SQS-compatible queue model featuring visibility timeouts and delayed delivery.
  • Database Trigger Notifications - Uses Postgres NOTIFY events to alert consumers of new message inserts without requiring constant polling.
  • Queue Throughput Analytics - Provides tools for tracking queue length and message throughput to monitor background processing health.
  • Job Queues - Lightweight message queue built on PostgreSQL.

Historial de estrellas

Gráfico del historial de estrellas de pgmq/pgmqGráfico del historial de estrellas de pgmq/pgmq

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Pgmq

Proyectos open-source similares, clasificados según cuántas características comparten con Pgmq.
  • rabbitmq/rabbitmq-tutorialsAvatar de rabbitmq

    rabbitmq/rabbitmq-tutorials

    6,889Ver en GitHub↗

    This project is a collection of learning resources and instructional guides for implementing asynchronous messaging patterns using RabbitMQ. It provides a series of tutorials and runnable code examples focused on the Advanced Message Queuing Protocol to help users decouple services via a message broker. The resources cover practical implementation patterns including request-reply, pub-sub, and stream processing. These guides demonstrate how to use official client libraries to balance worker loads, route messages across multiple consumers in a distributed system, and deploy high availability b

    Javarabbitmqtutorials
    Ver en GitHub↗6,889
  • airtai/faststreamAvatar de airtai

    airtai/faststream

    5,234Ver en GitHub↗

    FastStream is an asynchronous Python framework designed for building event-driven microservices. It provides a unified abstraction layer for interacting with various message brokers, enabling developers to manage event production and consumption through a consistent interface while maintaining access to native provider-specific features. The framework centers on a decorator-based routing model that binds application logic directly to broker topics, supported by a built-in dependency injection container that resolves resources at runtime. The framework distinguishes itself through its deep int

    Python
    Ver en GitHub↗5,234
  • taskforcesh/bullmqAvatar de taskforcesh

    taskforcesh/bullmq

    8,432Ver en GitHub↗

    BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence. The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream servic

    TypeScriptbackground-jobselixirnodejs
    Ver en GitHub↗8,432
  • queueclassic/queue_classicAvatar de QueueClassic

    QueueClassic/queue_classic

    1,188Ver en GitHub↗

    Queue Classic is a background processing framework for Ruby applications that manages asynchronous tasks by utilizing relational database tables for job persistence. By storing tasks directly within the database, the system ensures that job creation remains coupled with application transactions, guaranteeing that tasks are only queued when associated data changes are successfully committed. The framework coordinates concurrent worker processes through database-level locking mechanisms, which prevent redundant execution and allow for distributed task processing without the need for an external

    Rubyactivejobqueuequeuing
    Ver en GitHub↗1,188
Ver las 30 alternativas a Pgmq→

Preguntas frecuentes

¿Qué hace pgmq/pgmq?

PGMQ es un sistema de cola de mensajes ligero implementado como una extensión de PostgreSQL para gestionar tareas asincrónicas. Funciona como un intermediario de mensajes respaldado por base de datos que aprovecha PostgreSQL para almacenamiento persistente, operaciones atómicas y entrega impulsada por notificaciones.

¿Cuáles son las características principales de pgmq/pgmq?

Las características principales de pgmq/pgmq son: Postgres Message Queueing, Database-Backed Brokers, PostgreSQL Task Queues, Distributed Task Workers, Atomic Queue Transitions, Message Queues, Message Consumption, Message Deletion Operations.

¿Qué alternativas de código abierto existen para pgmq/pgmq?

Las alternativas de código abierto para pgmq/pgmq incluyen: rabbitmq/rabbitmq-tutorials — This project is a collection of learning resources and instructional guides for implementing asynchronous messaging… airtai/faststream — FastStream is an asynchronous Python framework designed for building event-driven microservices. It provides a unified… taskforcesh/bullmq — BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It… queueclassic/queue_classic — Queue Classic is a background processing framework for Ruby applications that manages asynchronous tasks by utilizing… bogdanp/dramatiq — Dramatiq is a distributed task queue and workload manager used to offload function execution to background workers. It… optimalbits/bull — Bull is a Node.js library for managing distributed jobs and message queues using Redis as the primary data store. It…