awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
pgmq avatar

pgmq/pgmq

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

Pgmq

PGMQ est un système de file d'attente de messages léger implémenté en tant qu'extension PostgreSQL pour gérer les tâches asynchrones. Il fonctionne comme un courtier de messages basé sur une base de données qui exploite PostgreSQL pour le stockage persistant, les opérations atomiques et la livraison pilotée par notification.

Le système fournit un modèle de file d'attente compatible SQS avec des délais de visibilité et une livraison différée. Il prend en charge un ordre strict premier entré, premier sorti (FIFO) via des clés de groupe et une récupération par lots pour garantir le traitement séquentiel des tâches liées.

Le projet couvre un cycle de vie complet des messages, y compris la production, la consommation via des opérations de dépilement atomique et la gestion administrative telle que la purge des files d'attente et le contrôle du cycle de vie. Il inclut des capacités de routage via des modèles basés sur des sujets et des fonctionnalités de fiabilité comme la mise en file d'attente des messages morts (dead letter queueing), l'archivage des messages et la logique de réessai. Des outils de surveillance sont fournis pour suivre les métriques opérationnelles telles que la longueur de la file d'attente et le débit.

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.

Historique des stars

Graphique de l'historique des stars pour pgmq/pgmqGraphique de l'historique des stars pour pgmq/pgmq

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Pgmq

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Pgmq.
  • rabbitmq/rabbitmq-tutorialsAvatar de rabbitmq

    rabbitmq/rabbitmq-tutorials

    6,889Voir sur 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
    Voir sur GitHub↗6,889
  • airtai/faststreamAvatar de airtai

    airtai/faststream

    5,234Voir sur 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
    Voir sur GitHub↗5,234
  • taskforcesh/bullmqAvatar de taskforcesh

    taskforcesh/bullmq

    8,432Voir sur 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
    Voir sur GitHub↗8,432
  • queueclassic/queue_classicAvatar de QueueClassic

    QueueClassic/queue_classic

    1,188Voir sur 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
    Voir sur GitHub↗1,188
Voir les 30 alternatives à Pgmq→

Questions fréquentes

Que fait pgmq/pgmq ?

PGMQ est un système de file d'attente de messages léger implémenté en tant qu'extension PostgreSQL pour gérer les tâches asynchrones. Il fonctionne comme un courtier de messages basé sur une base de données qui exploite PostgreSQL pour le stockage persistant, les opérations atomiques et la livraison pilotée par notification.

Quelles sont les fonctionnalités principales de pgmq/pgmq ?

Les fonctionnalités principales de pgmq/pgmq sont : Postgres Message Queueing, Database-Backed Brokers, PostgreSQL Task Queues, Distributed Task Workers, Atomic Queue Transitions, Message Queues, Message Consumption, Message Deletion Operations.

Quelles sont les alternatives open-source à pgmq/pgmq ?

Les alternatives open-source à pgmq/pgmq incluent : 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…