elsa-workflows / elsa-workflows/elsa-core

[ENH] Enable External Interaction with Publish Event and Event Activities

Open
#5,583 4 comments 0 reactions 0 assignees View on GitHub
elsa 3 enhancement triaged
Dominant language
C#
Stars
7.9k
Forks
1.5k
Avg merge
15h 22m
Merged PRs (30d)
114

Description

Currently, the PublishEvent and Event activities only operate internally within the workflow engine. Enabling external applications to leverage these primitives would significantly enhance the system's flexibility and integration capabilities.

### Proposed Enhancements

1. **PublishEvent Activity Enhancement**
- **Current Behavior**: The PublishEvent activity handles events internally.
- **Proposed Change**: Allow the PublishEvent activity to publish events that external applications can subscribe to. For example, an `EventPublished` event can be picked up by the Webhooks module, enabling external applications to handle these events and perform corresponding actions.

2. **Event Activity Enhancement**
- **Current Behavior**: The Event activity is triggered by internal mechanisms.
- **Proposed Change**: Enable external applications to trigger Event activities by sending HTTP requests or AMQP messages to the workflow engine. This will allow external systems to initiate events within the workflow, facilitating better integration and interaction.

### Implementation Guidance
- **Reference RunTask Activity**: The RunTask activity already has the capability to integrate with external applications. We can look at the RunTask activity to understand how this integration is implemented today and apply similar patterns to the PublishEvent and Event activities.

### Benefits
- **Enhanced Flexibility**: By allowing PublishEvent and Event activities to interact with external applications, the system's flexibility is greatly increased.
- **Improved Integration**: These enhancements will facilitate better integration with external systems, making it easier for external applications to interact with the workflow engine.
- **Expanded Use Cases**: Enabling external triggers and responses for PublishEvent and Event activities will open up new use cases and applications, enhancing the overall functionality of the workflow engine.

Implementing these enhancements will significantly improve the capabilities of the workflow engine, making it more robust and versatile in handling complex integrations with external systems.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.