A typed message queue for Convex with reactive WebSocket consumers, automatic retries, and visibility timeouts for reliable async processing.
npm install convex-mqA typed message queue component for Convex with reactive consumers, visibility timeouts, and automatic retries.
ConvexMQ provides a typed message queue that lets you publish messages from Convex mutations and consume them from external services. It handles automatic retries, visibility timeouts, and dead letter queues for reliable job processing.
ConvexMQ includes configurable automatic retries with exponential backoff and dead letter handling. Messages that exceed max attempts are returned with full error context for manual intervention.
ConvexMQ supports reactive consumption via WebSocket subscriptions that process messages immediately when published. This eliminates polling delays and reduces server load compared to traditional queue polling.
ConvexMQ generates fully typed API exports from your message schema definition. All publish, claim, ack, and nack operations are type-safe with IntelliSense support across your entire application.
ConvexMQ component mode creates isolated tables with simple setup but no custom indexes. Library mode lets you define the queue table in your own schema with full index support and filtered consumption by any field.
ConvexMQ uses visibility timeouts to automatically return unclaimed messages to the queue, configurable retry limits with automatic requeuing, and lease tokens to prevent stale consumers from acknowledging messages they no longer own.
ConvexMQ library mode supports filtered consumption using custom indexes. You can consume subsets of messages based on any indexed field, like processing only messages for specific workers or priority levels.
ConvexMQ supports Convex internal functions for deploy-key-only consumer access and custom function builders for authenticated publishing. This ensures only your server-side consumers can claim messages while requiring user auth for publishing.
ConvexMQ provides publishBatch for enqueueing multiple messages atomically and batch claiming for processing multiple messages together. This reduces function call overhead and improves throughput for high-volume scenarios.