How mavulahq/workbench works
MAVULA Workbench is a durable BullMQ worker runtime and public platform-status API. The main path is an authenticated client submitting or querying jobs, the API persisting them, and queue consumers dispatching work to payment, legacy-batch, or Ledger Core callback handling. Scheduling, settlement-outbox publishing, and health/metrics are separate runtime capabilities. The excerpts establish the main dispatch and monitoring calls; README documents broader scheduling and retry behavior, while several implementation details and integrations were not sampled.
Main entry points: platform-status.service.ts Platform Health · job-store.service.ts Job Store · job-handlers.service.ts Job Dispatch · worker-metrics.service.ts Worker Metrics
Components 21
Public API
- Jobs API
src/controllers/jobs.controller.ts - Legacy Batch API
src/controllers/legacy-batches.controller.ts - Status API
src/controllers/status.controller.ts - Access Control
src/auth/access-token.guard.ts
Queue Runtime
- Job Store
src/queue/job-store.service.ts - Queue Consumers
src/worker/worker.service.ts - Job Scheduler
src/worker/scheduler.service.ts - Fee, Interest, Reconciliation, Reports
src/worker/scheduler.service.ts
Job Processing
- Job Dispatch
src/worker/job-handlers.service.ts - Payment Processes
src/worker/payment-process-runtime.service.ts - Legacy Batches
src/worker/legacy-batch-runtime.service.ts - Service Tokens
src/auth/service-token.service.ts - Settlement Publisher
src/worker/payment-outbox-publisher.service.ts
Operations
- Platform Health
src/status/platform-status.service.ts - Worker Metrics
src/worker/worker-metrics.service.ts - Runtime Config
src/utils/runtime-config.ts
Other components
- API Client
- Ledger Core
- Postgres
- Redis
- Prometheus Scraper
Connections 34
- API Client → Jobs API: submits jobs
src/controllers/jobs.controller.ts - API Client → Legacy Batch API: manages batches
src/controllers/legacy-batches.controller.ts - API Client → Status API: checks status
src/controllers/status.controller.ts - Jobs API → Access Control: requires permissions
src/controllers/jobs.controller.ts - Jobs API → Job Store: enqueues and reads
src/controllers/jobs.controller.ts - Legacy Batch API → Job Store: uses queue store
src/controllers/legacy-batches.controller.ts - Legacy Batch API → Legacy Batches: manages batches
src/controllers/legacy-batches.controller.ts - Queue Consumers → Job Store: claims and completes
src/worker/worker.service.ts - Queue Consumers → Job Dispatch: dispatches jobs
src/worker/worker.service.ts - Job Dispatch → Payment Processes: handles payments
src/worker/job-handlers.service.ts - Job Dispatch → Legacy Batches: handles legacy jobs
src/worker/job-handlers.service.ts - Job Dispatch → Service Tokens: requests tenant token
src/worker/job-handlers.service.ts - Job Dispatch → Ledger Core: calls worker APIs
src/worker/job-handlers.service.ts - Service Tokens → Ledger Core: obtains access token
src/auth/service-token.service.ts - Job Scheduler → Job Store: schedules jobs
src/worker/scheduler.service.ts - Fee, Interest, Reconciliation, Reports → Job Scheduler: scheduled by
README.md - Settlement Publisher → Payment Processes: publishes settlement events
src/worker/payment-outbox-publisher.service.ts - Settlement Publisher → Ledger Core: publishes callbacks
- Status API → Platform Health: serves health
src/controllers/status.controller.ts - Platform Health → Job Store: reads queue stats
src/status/platform-status.service.ts - Platform Health → Queue Consumers: checks runtime
src/status/platform-status.service.ts - Platform Health → Job Scheduler: lists schedules
src/status/platform-status.service.ts - Platform Health → Worker Metrics: reads metrics
src/status/platform-status.service.ts - Platform Health → Ledger Core: checks dependency
src/status/platform-status.service.ts - Platform Health → Postgres: checks TCP health
src/status/platform-status.service.ts - Platform Health → Redis: checks queue health
src/status/platform-status.service.ts - Worker Metrics → Job Store: reads queue stats
src/worker/worker-metrics.service.ts - Worker Metrics → Queue Consumers: reads worker state
src/worker/worker-metrics.service.ts - Worker Metrics → Payment Processes: reads payment metrics
src/worker/worker-metrics.service.ts - Worker Metrics → Legacy Batches: reads batch metrics
src/worker/worker-metrics.service.ts - Prometheus Scraper → Status API: scrapes metrics
- Runtime Config → Job Store: configures backend
src/queue/job-store.service.ts - Runtime Config → Queue Consumers: configures workers
src/worker/worker.service.ts - Runtime Config → Job Scheduler: configures schedules
src/worker/scheduler.service.ts