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