Elasticsearch vs Cassandra visibility

In the config, even when you provide an elasticsearch cluster for visibility, you still need a Cassandra cluster for visibility. What is cass-visibility used for when es-visibility is already provided?

We also noticed that when we updated temporal and didn’t update the ES schema to match the new schema, temporal just stopped publishing to ES and fell back to Cassandra, but we didn’t see any logging conveying this. Is this expected, or did we miss something?

2 Likes

It depends on the value for dynamic config value of system.advancedVisibilityWritingMode. Temporal supports the following values for it:

  1. off: Visibility records are not written to enhanced visibility store
  2. on: Visibility records are written to only enhanced visibility store
  3. dual: Write to both visibility store and enhanced visibility store

If you are setting up a fresh cluster and setting up ES as the enhanced visibility store than there is no need to setup cassandra/mysql based visibility setting. I’m not aware of any logic where the server automatically falls back on visibility store when elastic search is not setup correctly.

There is another option to allow reading visibility records from elastic search based visibility store using system.enableReadVisibilityFromES.

You can readme more about visibility on readme

1 Like