Skip to content
You are reading Codefi Orchestrate development version documentation and some displayed features may not be available in the stable release. You can switch to stable version using the version box at screen bottom.

Updated on February 17, 2021

Configure Orchestrate Transaction Listener

Follow these steps to configure and connect to Orchestrate Transaction Listener dependencies:

  1. Configure Apache Kafka (mandatory)
  2. Configure monitoring (optional). Improve the development experience and debugging.
  3. Configure Multi-tenancy (optional). Use Orchestrate with multiple tenants.

In addition to the dependencies, Orchestrate Transaction Listener needs to be configured to connect to the other microservices and to define how the service should be exposed.


Configure each microservice using microservice-specific environment variables. Command line options are also available and take precedence over environment variables.


Environment Variable Command line option Description Default
TX_LISTENER_PROVIDER_REFRESH_INTERVAL tx-listener-provider-refresh-interval Time interval in seconds for refreshing the configuration of registered chains 5s
API_URL api-url URL of the Gateway API HTTP endpoint localhost:8081
API_METRICS_URL (only ENV var) URL of the Gateway API HTTP metrics endpoint. localhost:8082
TX_SENTRY_REFRESH_INTERVAL tx-sentry-refresh-interval Interval of time in seconds between checks for pending transactions 1s

CLI options

See the complete list of command line options for the Orchestrate Transaction Listener:

  orchestrate tx-listener run [flags]

      --api-url string                                   URL of the API HTTP endpoint. Environment variable: "API_URL" (default "http://localhost:8081")
      --auth-api-key string                              Key used for authentication (it should be used only for Orchestrate internal authenetication).
                                                         Environment variable: "AUTH_API_KEY"
  -h, --help                                             help for run
      --kafka-sasl-enabled                               Whether or not to use SASL authentication when connecting to the broker
                                                         Environment variable: "KAFKA_SASL_ENABLED"
      --kafka-sasl-handshake                             Whether or not to send the Kafka SASL handshake first if enabled (defaults to true). You should only set this to false if you're using a non-Kafka SASL proxy.
                                                         Environment variable: "KAFKA_SASL_HANDSHAKE" (default true)
      --kafka-sasl-mechanism string                      SASLMechanism is the name of the enabled SASL mechanism. Possible values: OAUTHBEARER, PLAIN (defaults to PLAIN).
                                                         Environment variable: "KAFKA_SASL_MECHANISM"
      --kafka-sasl-password string                       Password for SASL/PLAIN or SASL/SCRAM auth.
                                                         Environment variable: "KAFKA_SASL_PASSWORD"
      --kafka-sasl-scramauthzid string                   Authz id used for SASL/SCRAM authentication
                                                         Environment variable: "KAFKA_SASL_SCRAMAUTHZID"
      --kafka-sasl-user string                           Username for SASL/PLAIN or SASL/SCRAM auth.
                                                         Environment variable: "KAFKA_SASL_USER"
      --kafka-tls-ca-cert-file string                    CA cert file Path.
                                                         Environment variable: "KAFKA_TLS_CA_CERT_FILE"
      --kafka-tls-client-cert-file string                Client Cert File Path.
                                                         Environment variable: "KAFKA_TLS_CLIENT_CERT_FILE"
      --kafka-tls-client-key-file string                 Client key file Path.
                                                         Environment variable: "KAFKA_TLS_CLIENT_KEY_FILE"
      --kafka-tls-enabled                                Whether or not to use TLS when connecting to the broker (defaults to false).
                                                         Environment variable: "KAFKA_TLS_ENABLED"
      --kafka-tls-insecure-skip-verify                   Controls whether a client verifies the server's certificate chain and host name. If InsecureSkipVerify is true, TLS accepts any certificate presented by the server and any host name in that certificate. In this mode, TLS is susceptible to man-in-the-middle attacks. This should be used only for testing.
                                                         Environment variable: "KAFKA_TLS_INSECURE_SKIP_VERIFY"
      --kafka-url strings                                URL (addresses) of Kafka server(s) to connect to.
                                                         Environment variable: "KAFKA_URL" (default [localhost:9092])
      --kafka-version string                             The version of Kafka that Sarama will assume it is running against. Defaults to the oldest supported stable version. Since Kafka provides backwards-compatibility, setting it to a version older than you have will not break anything, although it may prevent you from using the latest features. Setting it to a version greater than you are actually running may lead to random breakage.
                                                         Environment variable: "KAFKA_CONSUMER_GROUP_REBALANCE_TIMEOUT" (default "1.0.0")
      --log-format string                                Log formatter (one of ["text" "json"]).
                                                         Environment variable: "LOG_FORMAT" (default "text")
      --log-level string                                 Log level (one of ["panic" "fatal" "error" "warn" "info" "debug" "trace"]).
                                                         Environment variable: "LOG_LEVEL" (default "info")
      --log-timestamp                                    Enable logging with timestamp (only TEXT format).
                                                         Environment variable: "LOG_TIMESTAMP"
      --metrics-hostname string                          Hostname to expose metrics services
                                                         Environment variable: "METRICS_HOSTNAME"
      --metrics-modules strings                          List of metrics modules exposed. Available metric modules are ["tcp" "go" "process" "healthz"], to enable all use ENABLED or to disable all DISABLED.
                                                         Environment variable: "METRICS_MODULES" (default [ENABLED])
      --metrics-port uint                                Port to expose metrics services
                                                         Environment variable: "METRICS_PORT" (default 8082)
      --topic-tx-decoded string                          Topic for successful transaction messages (receipts).
                                                         Environment variable: "TOPIC_TX_DECODED" (default "topic-tx-decoded")
      --tx-listener-provider-refresh-interval duration   Time interval for refreshing the configuration from the chain-registry
                                                         Environment variable: "TX_LISTENER_PROVIDER_REFRESH_INTERVAL" (default 5s)
ConsenSys has acquired Quorum from J.P. Morgan. Please read the FAQ.
Questions or feedback? You can obtain paid professional support by Consensys at [email protected]