Self-hosted Archival setup
Use Archival to back up closed Workflow Execution Event Histories and Visibility records from Temporal Service persistence to blob storage.
When a Workflow Execution closes, Temporal schedules close-processing tasks for both Visibility records and Event
History Archival. Archival then runs asynchronously after a randomized delay. By default, that delay is up to 5 minutes
set by history.archivalProcessorArchiveDelay, and is capped by the Namespace
Retention Period.
The closed execution still stays in Temporal persistence until retention cleanup runs. For some time, the same closed execution can exist in both persistence and archival storage. Archival enables Workflow Execution data to persist beyond retention without overwhelming the Temporal Service persistence store.
Use this to keep closed Workflow data available for compliance, audits, and debugging without keeping all closed data in your primary persistence store.
Archival is an experimental feature and not subject to normal versioning and support policy.
Archival is not supported when running Temporal through Docker. It's disabled by default when installing the system manually and when deploying through helm charts. It can be enabled in the server configuration.
Set up Archival
To set up Archival, decide the following:
- Which provider to use: S3, Google Cloud, local file system, or custom.
- Which URI to use: URI scheme and path identify the provider and destination.
- Which Namespace should use Archival: Archival must be enabled at both the Temporal Service level and the Namespace level.
Take the following steps to set up Archival:
Choose an Archival provider
Temporal directly supports several providers:
- Local file system: The
filestore archiver is used to archive
data in the file system of whatever host the Temporal server is running on. In the case of
temporal helm-charts, the archive data is stored in the
historypod. APIs do not function with the filestore archive. This provider is used mainly for local installations and testing and should not be relied on for production environments. - Google Cloud: The gcloud archiver is used to connect and archive data with Google Cloud.
- S3: The s3store archiver is used to connect and archive data with S3.
- Custom: If you want to use a provider that is not currently supported, you can create your own archiver to support it.
Save the provider URI so you can pass it when you create a Namespace with Archival enabled.
Configure Archival options
Configure Archival in
config/development.yaml:
# Temporal Service level Archival config
archival:
# Event History configuration
history:
# Archival is enabled at the Temporal Service level
state: 'enabled'
enableRead: true
# Namespaces can use either the local filestore provider or the Google Cloud provider
provider: