Firehose Multi-Service Configuration
Overview
Each flow is separately configured to use the firehose. This API allows firehose configuration to be tested before it is set on a flow. The Firehose feature supports multiple cloud storage services for event data export. This document describes the configuration options for both AWS S3 and Azure Blob Storage services.Configuration Structure
Legacy Configuration (Backward Compatible)
For existing flows, the legacy configuration continues to work:New Service-Based Configuration
The new service-based configuration allows multiple cloud storage providers:Credential Validation
AWS S3 Validation
The/firehose endpoint validates AWS credentials by:
- Creating a test file with unique name:
leadconduit_verification_[flow_id_]YYYYMMDDHHMMSSMS.txt - Uploading it to the specified bucket (with optional prefix) when
verification_file=true(default) - Alternatively, validating bucket access without creating file when
verification_file=false - Returning the S3 response with ETag or validation confirmation
Azure Blob Storage Validation
The/firehose endpoint validates Azure credentials by:
- Creating a BlobServiceClient from the connection string
- Checking if the specified container exists and is accessible
- Optionally creating verification file based on
verification_fileparameter - Returning container validation information
Event Processing
Single Service Configuration
When only one service is configured, events are sent to that service. If the service fails, events are spooled for retry.Multi-Service Configuration
When multiple services are configured:- Each enabled service receives the event independently
- If a service fails, it generates its own spool message for retry
- Each service can have different bucket/container and prefix configurations
Spooling and Retry
- Each service failure generates a separate SQS message for retry
- Spooled events contain service-specific metadata (bucket, prefix, credentials)
- The unspooler processes each service’s failed events independently
- File-based spooling creates separate paths for each service configuration
Migration Guide
From Legacy to Service-Based Configuration
- Keep existing configuration: Legacy configuration continues to work
- Add services object: Gradually migrate to service-based configuration
- Test thoroughly: Validate both configurations work as expected