Skip to content

Introduce activity execution record capturing and serialization improvements #6800

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 16, 2025

Conversation

sfmskywalker
Copy link
Member

@sfmskywalker sfmskywalker commented Jul 16, 2025

  • Added middleware for capturing activity execution records during workflow execution.
  • Introduced async mapping in DefaultActivityExecutionMapper with additional serialization support.
  • Enhanced ActivityExecutionRecord with new serialized properties for efficient storage.
  • Updated extensions to include UseActivityExecutionLogCapturing.
  • Simplified logging persistence by leveraging pre-serialized values in ActivityExecutionLogStore.

Fixes #6799


This change is Reviewable

…vements

- Added middleware for capturing activity execution records during workflow execution.
- Introduced async mapping in `DefaultActivityExecutionMapper` with additional serialization support.
- Enhanced `ActivityExecutionRecord` with new serialized properties for efficient storage.
- Updated extensions to include `UseActivityExecutionLogCapturing`.
- Simplified logging persistence by leveraging pre-serialized values in `ActivityExecutionLogStore`.
@sfmskywalker sfmskywalker requested a review from Copilot July 16, 2025 11:05
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces activity execution record capturing and serialization improvements to enhance workflow execution logging. The changes optimize performance by pre-serializing activity execution data during middleware execution rather than at persistence time.

  • Added middleware-based activity execution record capturing with async mapping support
  • Enhanced serialization handling by moving compression and serialization from persistence layer to mapping layer
  • Simplified persistence operations by leveraging pre-serialized data in the store

Reviewed Changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
StoreActivityExecutionLogSink.cs Updated to use captured records or async mapping for persistence
DefaultActivityExecutionMapper.cs Enhanced with async serialization and compression capabilities
CaptureActivityExecutionRecordMiddleware.cs New middleware for capturing activity execution records
ActivityExecutionPipelineBuilderExtensions.cs Added extension method for activity execution log capturing
PipelineWorkflowsFeatureExtensions.cs Integrated new middleware into default pipeline
ActivityExecutionContextRecordExtensions.cs Added extension methods for record capture and retrieval
ActivityExecutionRecord.cs Added NotMapped properties for serialized data
IActivityExecutonMapper.cs Removed synchronous Map method, kept only async MapAsync
ActivityExecutionLogStore.cs Simplified to use pre-serialized values from entity
Comments suppressed due to low confidence (1)

src/modules/Elsa.Workflows.Runtime/Contracts/IActivityExecutonMapper.cs:1

  • The filename contains a typo: 'IActivityExecutonMapper.cs' should be 'IActivityExecutionMapper.cs' (missing 'i' in 'Execution').
using Elsa.Workflows.Runtime.Entities;

@sfmskywalker sfmskywalker merged commit adbea90 into develop/3.5.0 Jul 16, 2025
5 checks passed
@sfmskywalker sfmskywalker deleted the bug/6799 branch July 16, 2025 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant