Way to listen on workflow lifecycle events

Are there ways in the SDK side we can listen on workflow lifecycle events, like WorkflowTaskScheduled, WorkflowTaskStarted, etc.
My target is to build a separate database to record the status of all workflows along with business information. Then the business user can query this database directly instead of querying temporal and aggregating information at the runtime.

I’m not sure how helpful even history itself would be to business users as it does require some understanding of Temporal server and your worker internals.
Maybe easier could be to user interceptors (examples for java, go, typescript) where you can intercept more business level things like workflow/activity/child workflow execution, signals, queries etc, and report if needed. Just idea.

Hi, how do you suggest to handle use cases like a flow is waiting on a user action and it is timed out. We want to listen to this and take appropriate action(update state of the app task) so that user wouldn’t able to act on it after the flow timed out.