We are starting to investigate the use of the archival feature. In our setup, we are using Cassandra for history db, ElasticSearch for visibility, Cassandra visibility will be turned off and we will be using an S3 compliant object store for archiving.
As of 0.30, the docs are a bit unclear on how archival and visibility interact. We have a few questions:
-
When using ES, does archiving of workflows also delete related data from ElasticSearch?
-
When using ES, how do we search for archived workflows? Does “tctl workflow listarchived” work in this scenario? Or is it perhaps the case that ES data is not deleted and so “tctl workflow list” continues to work even after workflows have been archived?
-
The docs imply that visibility archiving is not really supported yet (as of 0.30). I take that to mean we should disable it in our config, with something like below. Is that correct?
archival:
visibility:
state: "disabled"
enableRead: false
-
Does all archiving activity happen in the worker service? (I.e. which service(s) need to have the S3 secret access key available?)
-
When archival is turned on, do archiving and enforcement of retention period happen at the same time - i.e. workflow data is archived and then immediately deleted?
-
Suppose we decide not to use the archival feature and instead have a long retention period. Aside from the database space implications, what are the performance implications? Will the increased steady state size of the history database due to longer retention have an impact on performance of running workflows or workflow search?
Thanks!