The workflow service should provide outcomes and error messages produced by workflow instances
The Workflow Service is capable of launching registered workflows. Those workflows presently run inside Airflow containers, which are likely implemented using containers. As these workflows run, they log information to the Airflow log files. They might also implement a logging strategy that sends logs to the underlying CSP's logging framework. However, there is no programmatic way to fetch the outcomes of a workflow.
We need a uniform way to allow external processes to inquire information about a workflow beyond its execution status. Things that could be fetched via a run id, or some other mechanism, might include:
- Log messages
- Error messages (including partial failures)
- Workflow status (beyond the execution status - workflows might have their own managed state)
- Workflow results (i.e., records processed or stored [including record IDs], activities performed, etc.)
- Other details
This solution might require a broader perspective at the core service level, or it might be a solution unique to workflow service. Either way, we need to move beyond Airflow logs for a better user experience.
Additionally, as part of this story, the Workflow Service should consider statuses that indicate partial failures - meaning part of the job was successful, but part of the job also failed (even if gracefully failed).