Temporal production deployment

I had some queries regarding the production deployment of Temporal.

  • We want to deploy Temporal in Kubernetes. Can we use the Helm Chart from GitHub - temporalio/helm-charts: Temporal Helm charts? What changes are required in this since the Temporal documentation says it is not recommended to use this Helm Chart for production deployments?
  • The new version of Temporal doesn’t have any dependency on Kafka and Zookeeper. What parameters should I use while installing the Helm Chart to remove this dependency?
  • If we use Kafka for the Visibility feature, do we need to write any consumer to move data from Kafka to ElasticSearch?
  • We are expecting 100 workflows (including the child workflows) per second in production. What is the recommended number of shards we should use to support this? How do we specify the shard number while installing the Helm Chart?
  • How many instances of different Temporal servers (History, Matching, Worker, Frontend) should be used to support this workload?

Hi, I need some help regarding the production deployment of Temporal. It will be great if someone can share some details about the queries above.

I can’t answer all of your questions, but for the Helm chart I think the recommendation is to only deploy the Temporal components with the Helm chart. You should disable Kafka, Elasticsearch, Cassandra, MySQL, etcetera.

You can specify the shard number using config.numHistoryShards.

In the values.yml file it would be as follows (just an example, I haven’t tested it):

config:
  numHistoryShards: 512 # just an example
  # Since you are disabling all persistent stores below, you need to configure an external persistent store.
  persistence:
    default:
      driver: cassandra
      cassandra:
        hosts: ['cassandra.default.svc']
        port: 9042

elasticsearch:
  enabled: false

prometheus:
  enabled: false

kafka:
  enabled: false

grafana:
  enabled: false

cassandra:
  enabled: false

mysql:
  enabled: false