Link Workflow
5 places
8 transitions
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)"];
}