Link Workflow

5 places 8 transitions

Places & Transitions

new Set
Link extracted from a Page, not yet resolved
  • resolve resolved
    HEAD request, follow redirects to the final URL
resolved Set
Final URL resolved (redirects followed). Landing here kicks off Article creation automatically.
  • resolve resolved
    HEAD request, follow redirects to the final URL
  • create_article article_exists
    Auto-dispatched via PLACE_RESOLVED's next: cascade -- not called directly elsewhere.
article_exists Set
The resolved final URL already has (or now has) a matching Article
  • delete_article resolved
    Remove the Article this Link created (used to undo a bad create_article)
pending_fetch Set
Queued for resolution (HEAD request / redirect-follow)
  • resolve resolved
    HEAD request, follow redirects to the final URL
  • error error
    Resolve failed (non-2xx / exception)
  • _bad_cache_check error
    Cached response for this URL is stale/invalid
error Set
Resolution failed (bad status, cache check failure)
  • resolve resolved
    HEAD request, follow redirects to the final URL
digraph workflow {
  ratio="compress" rankdir="TB" width="0.5" ranksep="0.2"
  node [fontsize="9" fontname="Arial" color="#333333" fillcolor="lightblue" fixedsize="false" width="0.5" shape="ellipse"];
  edge [fontsize="9" fontname="Arial" color="#333333" arrowhead="normal" arrowsize="0.5" shape="box"];

  place_new [label="new", shape=doublecircle style="filled" color="#FF0000" tooltip="Link extracted from a Page, not yet resolved"];
  place_resolved [label="resolved", shape=ellipse tooltip="Final URL resolved (redirects followed). Landing here kicks off Article creation automatically."];
  place_article_exists [label="article_exists", shape=ellipse tooltip="The resolved final URL already has (or now has) a matching Article"];
  place_pending_fetch [label="pending_fetch", shape=ellipse tooltip="Queued for resolution (HEAD request / redirect-follow)"];
  place_error [label="error", shape=ellipse tooltip="Resolution failed (bad status, cache check failure)"];
  place_new -> place_resolved [label="resolve" style="dotted" tooltip="HEAD request, follow redirects to the final URL"];
  place_pending_fetch -> place_resolved [label="resolve" style="dotted" tooltip="HEAD request, follow redirects to the final URL"];
  place_pending_fetch -> place_error [label="error" style="dotted" tooltip="Resolve failed (non-2xx / exception)"];
  place_pending_fetch -> place_error [label="_bad_cache_check" style="dotted" tooltip="Cached response for this URL is stale/invalid"];
  place_error -> place_resolved [label="resolve" style="dotted" tooltip="HEAD request, follow redirects to the final URL"];
  place_resolved -> place_resolved [label="resolve" style="dotted" tooltip="HEAD request, follow redirects to the final URL"];
  place_resolved -> place_article_exists [label="create_article" style="dotted" tooltip="Auto-dispatched via PLACE_RESOLVED\'s next: cascade -- not called directly elsewhere."];
  place_article_exists -> place_resolved [label="delete_article" style="dotted" tooltip="Remove the Article this Link created (used to undo a bad create_article)"];
}