{"categories":[{"label":"Libraries","url":"https://skillfed.io/packages/category/software-development-libraries/9"}],"enrichment":{"capability":"Implements transactional queues and workers backed by a relational database (Postgres, MySQL, or Singlestore), supporting simple queuing, pub/sub, and webhook patterns without requiring a separate message broker.","skillfed_tags":["task-queue","database-backed","transactional"],"use_cases":["Implement asynchronous task processing where transactional consistency with the originating database transaction is critical.","Monitor queue depth and task status directly via SQL queries using BI tools like Redash or DundasBI.","Build pub/sub workflows where a single event triggers independent processing by multiple subscribers.","Deploy webhook handlers that call external services without writing custom subscription code.","Avoid the operational complexity of running a separate message broker when your application already depends on a relational database."],"what_it_does":"nsj-queue-lib is a Python library that implements task queues and worker patterns using a relational database as the queue backend instead of a separate message broker like RabbitMQ. It supports three worker types: simple queuing (one message, one worker), pub/sub (one message replicated to multiple subscribers with independent processing), and webhooks (pub/sub without code implementation, configured via subscriptions). The core design ensures transactional consistency\u2014messages are enqueued atomically with the database transaction that created them, and dequeued only after successful processing, eliminating the need for complex protocols like two-phase commit.\n\nThe trade-off is that all queue data and payloads live in the database itself, increasing storage and compute load on the database server. The library is designed for Postgres, MySQL, and Singlestore only. It includes utilities to generate queue schemas, a client module for inserting tasks, and base classes to extend for custom worker logic. Workers typically run as separate processes or containers with environment variables specifying the queue table and database connection.","worth_installing":"Yes, with conditions. Install if you need transactional queue guarantees tightly coupled to database transactions and are willing to accept higher database load in exchange for simpler architecture and direct SQL monitoring. Do not install if your queue traffic is very high, you need a separate broker for isolation, or you cannot verify the license terms and internal dependency availability. The aging maintenance status (397 days since last release, Alpha stage) suggests limited active development; evaluate whether the package is still maintained for your target database versions."},"id":"nsj-queue-lib","links":{"html":"https://skillfed.io/packages/nsj-queue-lib","md":"https://skillfed.io/packages/nsj-queue-lib.md","pypi":"https://pypi.org/project/nsj-queue-lib/"},"maintenance":{"status":"aging"},"meta":{"latest_release":"2025-07-13","license_spdx":null,"license_treatment":"unclear","name":"nsj-queue-lib","python_support":"supports_current","summary":"Biblioteca para facilitar a implementa\u00e7\u00e3o de filas e workers."},"popularity":{"monthly_downloads":132654,"position":11546,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"1.2.2"}
