temporalio / temporalio/temporal
Workflows/activities to post event notifications that could be listened to
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 23.2k
- Forks
- 1.9k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 228
Description
We would like to listen to Temporal workflow/activity lifecycle events (e.g. WorkflowExecutionStarted, ActivityTaskStarted, ActivityTaskCompleted), apply some filtering and transformation and then persist the events to our own database. Business users could query this database directly instead of querying Temporal and transforming/aggregating information at the runtime.
An additional requirement would be ability to distinguish workflow / activity replay / retry events from "first execution" events.
It would be nice if it were possible to attach some kind of listener to a workflow / an activity at the worker level.
We've considered workflow/activity inbound/outbound call interceptors, however, they only seem to fire on a subset of events (start/finish). Additionally, workflow interceptors do not distinguish first start and replay events.
We would be interested in having the functionality available in Java SDK.
Related discussions in the support forum:
- https://community.temporal.io/t/how-to-watch-all-workflows-events-inside-a-namespace/4658
- https://community.temporal.io/t/way-to-listen-on-workflow-lifecycle-events/5887
- https://community.temporal.io/t/consume-temporal-io-events/1630
- https://community.temporal.io/t/can-i-attach-a-listener-to-workflow-execution/4275
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the Java SDK's workflow and activity inbound/outbound interceptor behavior and the linked support-forum discussions. Done would require a defined worker-level listener capability that exposes the requested lifecycle events, supports filtering and transformation, and distinguishes replay or retry events from first execution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100