Is forcefully failing a workflow to reflect business status a bad Idea?

  1. Imho tying the workflow execution status to a domain-specific business “status” term is not optimal. Your workflow can complete successfully even if your business logic does not require retries of the failed activity. This would allow you to do things like compensation and business-level recovery from the failure if needed. Your workflow final result(s) can be the indicator of your domain-specific “failure” and failed workflow status would indicate a technical failure that can be seen as a real bug in your workflow code that needs to be fixed.
  2. You can catch an exception and re-throw it as ApplicationFailure which always fails the workflow. You can add exceptions to the list of exceptions that fail the workflow via WorkflowImplementationOptions