Destination Workflow
The DestinationWorkflow in Data Nadhi handles the final step: delivering processed logs to their intended destinations.
It gets data from the TransformationWorkflow and makes sure everything integrates properly with external systems.
[Github Repository]: data-nadhi-temporal-worker
Overview
This workflow gets triggered as a child workflow from the TransformationWorkflow.
It fetches the integration targets and connector configs you need, and sends the data to the destination.
Workflow Steps
1. Fetch Integration Target
Activity: fetch_integration_target
What it does:
- Gets the target config using
target_id - If target isn't found, the workflow throws an error
- Provides target details to the next step
2. Fetch Integration Connector
Activity: fetch_integration_connector
What it does:
- Gets the connector config using the connector ID from the target
- Decrypts sensitive credentials securely
- If connector or credentials aren't found, throw an error
- Provides connector details to the destination activity
3. Send to Destination
Activity: send_to_destination
What it does:
- Uses target and decrypted connector data to send logs/events
- Handles failures here and retries according to the default retry policy
4. Exit
- Workflow completes successfully once data gets sent to the destination
- Failure at any step logs detailed info to MinIO for traceability
Failure Handling
All activity failures get logged to MinIO. Each log includes:
- Exception type and message
- Stack trace
- Input data that caused the failure
- Target and connector IDs
This keeps things transparent and makes troubleshooting easier if there are delivery issues.
Summary
The DestinationWorkflow guarantees reliable delivery of processed logs to external systems by:
- Validating targets and connectors before sending
- Securely handling credentials in the connector fetch activity
- Handling errors gracefully and logging all failures to MinIO
This makes sure every log reaches its intended destination securely and reliably.