Skip to main content

Workflow Implementation Status

Current State: 10/10 Workflows Implemented, 4 Wired

Wired as Entry Points ✅

WorkflowEntry PointFile Modified
AssetOnboardWorkflowPOST /api/assetssrc/endpoints/assets.js
DomainOnboardWorkflowtriggerDomainOnboarding()src/lib/domain-onboarding.js
SerpTrackingWorkflowPOST /api/keywords/tracksrc/endpoints/track-keyword.js
AppDetailsWorkflowPOST /api/apps/tracksrc/endpoints/track-app.js

Implemented (Queue-Triggered) ⏳

WorkflowFileTrigger
UrlClassifyWorkflowsrc/workflows/url-classify.tsbacklink-classify-consumer
KeywordClassifyWorkflowsrc/workflows/keyword-classify.tskeyword-classify-consumer
DomainClassifyWorkflowsrc/workflows/domain-classify.tsdomain-classify-consumer
LlmVerifyWorkflowsrc/workflows/llm-verify.tsllm-verify-consumer
SubscriptionDispatchWorkflowsrc/workflows/subscription-dispatch.tsDaily cron
CrawlRunWorkflowsrc/workflows/crawl-run.tsManual

Completed Work

Phase 1: Core Workflows ✅

  • All 10 workflows implemented in src/workflows/
  • Queue signaling integration (all consumers)
  • wrangler.toml configuration with all bindings
  • Workflow exports in index.js

Phase 2: Entry Point Wiring ✅

  • AssetOnboardWorkflow wired to POST /api/assets
  • DomainOnboardWorkflow wired to triggerDomainOnboarding()
  • SerpTrackingWorkflow wired to POST /api/keywords/track
  • AppDetailsWorkflow wired to POST /api/apps/track
  • Fallback to queue when workflow unavailable

Phase 3: Documentation ✅

  • diagrams.md updated with workflow orchestration section
  • Scorecard updated with wiring status
  • Mermaid diagram shows workflow connections

Architecture Pattern

User Action → API Endpoint → Workflow.create() → Workflow Orchestrates → Queue Consumers Execute

Returns workflow_id + status_url

Fallback: If workflow binding unavailable, endpoints fall back to direct queue messaging.


Future Work

Remaining Wiring (Optional)

These workflows work fine via queue consumers but could be wired as direct entry points for better observability:

  1. UrlClassifyWorkflow - Could wire to /api/admin/classify/url
  2. KeywordClassifyWorkflow - Could wire to /api/admin/classify/keyword
  3. DomainClassifyWorkflow - Could wire to /api/admin/classify/domain

Console Integration

  • Workflow monitoring API endpoints exist (/api/admin/workflow/:type/:id)
  • Workflow dashboard UI (shows running/completed workflows)
  • Cost tracking dashboard enhancement

Daily Subscriptions

  • Wire SubscriptionDispatchWorkflow to daily cron
  • Build domain-tracking-consumer for watchlist refresh