<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><b>Use case: </b><br>The client software fires the workflow execution and needs to be know when the workflow is complete. There is no good pool strategy as workflow can take arbitrary time from ms to days. Callback notification is needed. <br><font color="#007316"><br></font>Solution is a webhook<br><font color="#007316"><br></font><b>Option 1: pass callback URL as part of starting workflow execution:</b><br>POST /executions<br>    workflow_name=flow<br>    callback= {</div><div>        events: [[on-task-complete, on-execution-complete]</div><div>        url: <a href="http://bla.com">http://bla.com</a><br>        method:POST<br>        headers: {}<br>        … other stuff to form proper HTTP call, like API tokens, etc ...<br>    }<br>    …..<br><font color="#007316"><br><br></font><b>Option 2: webhook endpoint</b><br>Mistral exposes /webhook controller <br>Client creates a webhook and receives events for all executions for selected workflows. <br>{  <br>  "name": "web",<br>  "active": true,<br>  "events": [  ]<br>  “workflows”: [wf1, wf2] <br>  "url": "<a href="http://example.com/webhook">http://example.com/webhook</a>",  <br>}<br><font color="#007316"><br></font><b>Opinions: </b><br><br></div><div>DZ: my opinion: <br>Option 1 for it is simple and convenient for a client. <br>It seems like an optimal solution for “tracking executions and tasks” use case.<br><font color="#007316"><br></font>Option 2 is an overkill: makes it harder for a client (post workflow, post webhook, post execution, delete workflow, delete webhook) introduces lifecycle management problems (e.g., workflow deleted -> webhook orphaned).<br><font color="#007316"><br></font><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>I vaguely recall someone from Heat compared these options and regretted one of them for security reasons, but can’t remember details.</div><div><br></div></div></div></div><br></body></html>