@extenshi/publisher
v0.8.0
Published
Multi-store browser-extension publishing clients (Chrome Web Store, Firefox AMO, Edge Add-ons)
Readme
Publisher (extenshi-publisher)
Background job queue service using pg-boss for scheduled jobs and asynchronous task processing.
Features
- PostgreSQL Job Queue: Durable jobs using pg-boss that survive service restarts
- Scheduled Jobs: Cron-like scheduling for recurring tasks
- Retry Logic: Configurable retry with exponential backoff
- Rate Limiting: Throttling for job processing
- Dead Letter Queue: Failed jobs preserved for debugging
Quick Start
# Install dependencies
yarn install
# Start the publisher worker
yarn workspace extenshi-publisher dev
# Build for production
yarn workspace extenshi-publisher buildEnvironment Variables
| Variable | Required | Description | |----------|----------|-------------| | DATABASE_URL | Yes | PostgreSQL connection string (same as engine) |
Architecture
Engine/Services -> pg-boss Queue (PostgreSQL) -> Publisher Workers -> Task Execution
|
Job PersistenceThe publisher uses the same PostgreSQL database as the engine. Jobs are stored in the pgboss schema tables.
Job Types
| Job | Purpose | |-----|---------| | Analytics processing | Aggregate and compute metrics | | Notification delivery | Send emails, push notifications | | Data cleanup | Remove expired logs per retention policy | | Scheduled reports | Generate periodic reports |
Usage
Enqueuing Jobs
Jobs are enqueued from other services (primarily the engine):
import PgBoss from 'pg-boss';
const boss = new PgBoss(process.env.DATABASE_URL);
await boss.start();
// Send a job
await boss.send('job-name', { data: 'payload' });
// Schedule a recurring job
await boss.schedule('daily-cleanup', '0 2 * * *', { type: 'cleanup' });Processing Jobs
The publisher workers subscribe to job queues:
boss.work('job-name', async (job) => {
console.log('Processing:', job.data);
// ... process job
});Migration from Trigger.dev
This service replaced Trigger.dev. Key differences:
- Uses PostgreSQL instead of external service
- Jobs are stored in
pgbossschema - No external dashboard (use pg queries or Prisma Studio)
Testing
yarn workspace extenshi-publisher testRelated Documentation
- Engine - Enqueues jobs
- Module Docs - Detailed Claude Code documentation
