Zeebe Kafka Exporter Config

Hi,

I’m currently trying to reconfigure the kafka exporter settings from the .toml format to the .yaml format. I’ve tried making some changes but am getting errors(i’ll link error in comments as its too big to fit in this box.

Here is my .yaml file:

exporters:

kafka:
    className: "io.zeebe.exporters.kafka.KafkaExporter"
    args:
      maxInFlightRecords: 1000
      # How often should the exporter drain the in flight records' queue of completed
      # requests and update the broker with the guaranteed latest exported position
      inFlightRecordCheckIntervalMs: 1000

      producers:
        # The list of initial Kafka broker contact points. The format should be the same
        # one as the ProducerConfig expects, i.e. "host:port"
        # Maps to ProducerConfig.BOOTSTRAP_SERVERS_CONFIG
        servers: [ "localhost:9092" ]
        # Controls how long the producer will wait for a request to be acknowledged by
        # the Kafka broker before retrying it
        # Maps to ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG
        requestTimeoutMs: 5000
        # Grace period when shutting down the producer in milliseconds
        closeTimeoutMs: 5000
        # Producer client identifier
        clientId: "zeebe"
        # Max concurrent requests to the Kafka broker; note that in flight records are batched such that
        # in one request you can easily have a thousand records, depending on the producer's batch
        # configuration.
        maxConcurrentRequests: 3

        # Any setting under the following section will be passed verbatim to
        # ProducerConfig; you can use this to configure authentication, compression,
        # etc. Note that you can overwrite some important settings, so avoid changing
        # idempotency, delivery timeout, and retries, unless you know what you're doing
      
      records:
        # If a record value type is omitted in your configuration file,
        # it will fall back to whatever is configured in the defaults
        defaults: 
          type: [ "event" ] 
          topic: "zeebe"
        # For records with a value of type DEPLOYMENT
        deployment: 
          topic: "zeebe-deployment"
        # For records with a value of type INCIDENT
        incident:
          topic: "zeebe-incident"
        # For records with a value of type JOB_BATCH
        jobBatch:
          topic: "zeebe-job-batch"
        # For records with a value of type JOB
        job:
          topic: "zeebe-job"
        # For records with a value of type MESSAGE
        message: 
          topic: "zeebe-message"
        # For records with a value of type MESSAGE_SUBSCRIPTION
        messageSubscription:
          topic: "zeebe-message-subscription"
        # For records with a value of type MESSAGE_START_EVENT_SUBSCRIPTION
        messageStartEventSubscription:
          topic: "zeebe-message-subscription-start-event"
        # For records with a value of type RAFT
        raft:
          topic: "zeebe-raft"
        # For records with a value of type TIMER
        timer:
          topic: "zeebe-timer"
        # For records with a value of type VARIABLE
        variable:
          topic: "zeebe-variable"
        # For records with a value of type WORKFLOW_INSTANCE
        workflowInstance:
          type: ["event"]
          topic: "zeebe-workflow"
        # For records with a value of type WORKFLOW_INSTANCE_SUBSCRIPTION
        workflowInstanceSubscription:
          topic: "zeebe-workflow-subscription"

here is the error logs:

2020-05-11 11:28:25.789 [] [main] INFO  io.zeebe.broker.StandaloneBroker - Starting StandaloneBroker v0.23.1 on C02ZJJP9MD6M with PID 4157 (/Users/mdiloreto/Documents/zeebe-full/zeebe-broker-0.23.1/lib/zeebe-distribution-0.23.1.jar started by mdiloreto in /Users/mdiloreto/Documents/zeebe-full/zeebe-broker-0.23.1)
    2020-05-11 11:28:25.795 [] [main] INFO  io.zeebe.broker.StandaloneBroker - No active profile set, falling back to default profiles: default
    2020-05-11 11:28:27.447 [] [main] INFO  io.zeebe.broker.StandaloneBroker - Started StandaloneBroker in 2.116 seconds (JVM running for 3.238)
    2020-05-11 11:28:27.565 [] [main] INFO  io.zeebe.broker.system - Version: 0.23.1
    2020-05-11 11:28:27.668 [] [main] INFO  io.zeebe.broker.system - Starting broker 0 with configuration {
      "network" : {
        "host" : "0.0.0.0",
        "portOffset" : 0,
        "maxMessageSize" : "4MB",
        "advertisedHost" : "0.0.0.0",
        "commandApi" : {
          "host" : "0.0.0.0",
          "port" : 26501,
          "advertisedHost" : "0.0.0.0",
          "advertisedPort" : 26501,
          "address" : "0.0.0.0:26501",
          "advertisedAddress" : "0.0.0.0:26501"
        },
        "internalApi" : {
          "host" : "0.0.0.0",
          "port" : 26502,
          "advertisedHost" : "0.0.0.0",
          "advertisedPort" : 26502,
          "address" : "0.0.0.0:26502",
          "advertisedAddress" : "0.0.0.0:26502"
        },
        "monitoringApi" : {
          "host" : "0.0.0.0",
          "port" : 9600,
          "advertisedHost" : "0.0.0.0",
          "advertisedPort" : 9600,
          "address" : "0.0.0.0:9600",
          "advertisedAddress" : "0.0.0.0:9600"
        },
        "maxMessageSizeInBytes" : 4194304
      },
      "cluster" : {
        "initialContactPoints" : [ ],
        "partitionIds" : [ 1 ],
        "nodeId" : 0,
        "partitionsCount" : 1,
        "replicationFactor" : 1,
        "clusterSize" : 1,
        "clusterName" : "zeebe-cluster",
        "gossipFailureTimeout" : 10000,
        "gossipInterval" : 250,
        "gossipProbeInterval" : 1000
      },
      "threads" : {
        "cpuThreadCount" : 2,
        "ioThreadCount" : 2
      },
      "data" : {
        "directories" : [ "/Users/mdiloreto/Documents/zeebe-full/zeebe-broker-0.23.1/data" ],
        "logSegmentSize" : "512MB",
        "snapshotPeriod" : "PT15M",
        "logIndexDensity" : 100,
        "logSegmentSizeInBytes" : 536870912
      },
      "exporters" : {
        "elasticsearch" : {
          "jarPath" : null,
          "className" : "io.zeebe.exporter.ElasticsearchExporter",
          "args" : {
            "url" : "http://localhost:9200"
          },
          "external" : false
        },
        "kafka" : {
          "jarPath" : null,
          "className" : "io.zeebe.exporters.kafka.KafkaExporter",
          "args" : {
            "maxInFlightRecords" : 1000,
            "inFlightRecordCheckIntervalMs" : 1000,
            "producers" : {
              "servers" : {
                "0" : "localhost:9092"
              },
              "requestTimeoutMs" : 5000,
              "closeTimeoutMs" : 5000,
              "clientId" : "zeebe",
              "maxConcurrentRequests" : 3
            },
            "records" : {
              "defaults" : {
                "type" : {
                  "0" : "event"
                },
                "topic" : "zeebe"
              },
              "deployment" : {
                "topic" : "zeebe-deployment"
              },
              "incident" : {
                "topic" : "zeebe-incident"
              },
              "jobBatch" : {
                "topic" : "zeebe-job-batch"
              },
              "job" : {
                "topic" : "zeebe-job"
              },
              "message" : {
                "topic" : "zeebe-message"
              },
              "messageSubscription" : {
                "topic" : "zeebe-message-subscription"
              },
              "messageStartEventSubscription" : {
                "topic" : "zeebe-message-subscription-start-event"
              },
              "raft" : {
                "topic" : "zeebe-raft"
              },
              "timer" : {
                "topic" : "zeebe-timer"
              },
              "variable" : {
                "topic" : "zeebe-variable"
              },
              "workflowInstance" : {
                "type" : {
                  "0" : "event"
                },
                "topic" : "zeebe-workflow"
              },
              "workflowInstanceSubscription" : {
                "topic" : "zeebe-workflow-subscription"
              }
            }
          },
          "external" : false
        }
      },
      "gateway" : {
        "network" : {
          "host" : "0.0.0.0",
          "port" : 26500,
          "minKeepAliveInterval" : "PT30S"
        },
        "cluster" : {
          "contactPoint" : "0.0.0.0:26502",
          "requestTimeout" : "PT15S",
          "clusterName" : "zeebe-cluster",
          "memberId" : "gateway",
          "host" : "0.0.0.0",
          "port" : 26502
        },
        "threads" : {
          "managementThreads" : 1
        },
        "monitoring" : {
          "enabled" : false,
          "host" : "0.0.0.0",
          "port" : 9600
        },
        "security" : {
          "enabled" : false,
          "certificateChainPath" : null,
          "privateKeyPath" : null
        },
        "enable" : true
      },
      "backpressure" : {
        "enabled" : true,
        "algorithm" : "VEGAS"
      },
      "stepTimeout" : "PT5M"
    }
    2020-05-11 11:28:27.684 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [1/11]: actor scheduler
    2020-05-11 11:28:27.686 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [2/11]: membership and replication protocol
    2020-05-11 11:28:29.108 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [3/11]: command api transport
    2020-05-11 11:28:29.370 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [4/11]: command api handler
    2020-05-11 11:28:29.405 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [5/11]: subscription api
    2020-05-11 11:28:29.426 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [6/11]: embedded gateway
    2020-05-11 11:28:29.431 [] [main] INFO  io.zeebe.gateway - Version: 0.23.1
    2020-05-11 11:28:29.431 [] [main] INFO  io.zeebe.gateway - Starting gateway with configuration {
      "network" : {
        "host" : "0.0.0.0",
        "port" : 26500,
        "minKeepAliveInterval" : "PT30S"
      },
      "cluster" : {
        "contactPoint" : "0.0.0.0:26502",
        "requestTimeout" : "PT15S",
        "clusterName" : "zeebe-cluster",
        "memberId" : "gateway",
        "host" : "0.0.0.0",
        "port" : 26502
      },
      "threads" : {
        "managementThreads" : 1
      },
      "monitoring" : {
        "enabled" : false,
        "host" : "0.0.0.0",
        "port" : 9600
      },
      "security" : {
        "enabled" : false,
        "certificateChainPath" : null,
        "privateKeyPath" : null
      },
      "enable" : true
    }
    2020-05-11 11:28:29.523 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [7/11]: cluster services
    2020-05-11 11:28:30.100 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [8/11]: topology manager
    2020-05-11 11:28:30.101 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [9/11]: metric's server
    2020-05-11 11:28:30.108 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [10/11]: leader management request handler
    2020-05-11 11:28:30.110 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [11/11]: zeebe partitions
    2020-05-11 11:28:30.111 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 partitions [1/1]: partition 1
    2020-05-11 11:28:30.149 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 partitions [1/1]: partition 1 failed with unexpected exception.
    java.lang.IllegalStateException: Failed to load exporter with configuration: ExporterCfg{, jarPath='null', className='io.zeebe.exporters.kafka.KafkaExporter', args={maxInFlightRecords=1000, inFlightRecordCheckIntervalMs=1000, producers={servers={0=localhost:9092}, requestTimeoutMs=5000, closeTimeoutMs=5000, clientId=zeebe, maxConcurrentRequests=3}, records={defaults={type={0=event}, topic=zeebe}, deployment={topic=zeebe-deployment}, incident={topic=zeebe-incident}, jobBatch={topic=zeebe-job-batch}, job={topic=zeebe-job}, message={topic=zeebe-message}, messageSubscription={topic=zeebe-message-subscription}, messageStartEventSubscription={topic=zeebe-message-subscription-start-event}, raft={topic=zeebe-raft}, timer={topic=zeebe-timer}, variable={topic=zeebe-variable}, workflowInstance={type={0=event}, topic=zeebe-workflow}, workflowInstanceSubscription={topic=zeebe-workflow-subscription}}}}
    	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:140) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$partitionsStep$17(Broker.java:339) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.partitionsStep(Broker.java:346) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$initStart$9(Broker.java:183) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.internalStart(Broker.java:135) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.util.LogUtil.doWithMDC(LogUtil.java:21) [zeebe-util-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.start(Broker.java:115) [zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:59) [zeebe-distribution-0.23.1.jar:0.23.1]
    	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:768) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:322) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at io.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:46) [zeebe-distribution-0.23.1.jar:0.23.1]
    Caused by: io.zeebe.broker.exporter.repo.ExporterLoadException: Cannot load exporter [kafka]: failed validation
    	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:93) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	... 23 more
    Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $.records.defaults.type
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:932) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:1003) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:975) ~[gson-2.8.6.jar:?]
    	at io.zeebe.broker.exporter.context.ExporterConfiguration.instantiate(ExporterConfiguration.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.exporters.kafka.KafkaExporter.configure(KafkaExporter.java:81) ~[zeebe-kafka-exporter-1.1.0-uber.jar:1.1.0]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:91) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	... 23 more
    Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $.records.defaults.type
    	at com.google.gson.internal.bind.JsonTreeReader.expect(JsonTreeReader.java:163) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.JsonTreeReader.beginArray(JsonTreeReader.java:72) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:932) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:1003) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:975) ~[gson-2.8.6.jar:?]
    	at io.zeebe.broker.exporter.context.ExporterConfiguration.instantiate(ExporterConfiguration.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.exporters.kafka.KafkaExporter.configure(KafkaExporter.java:81) ~[zeebe-kafka-exporter-1.1.0-uber.jar:1.1.0]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:91) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	... 23 more
    2020-05-11 11:28:30.154 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 partitions succeeded. Closed 0 steps in 0 ms.
    2020-05-11 11:28:30.155 [] [main] INFO  io.zeebe.broker.system - Bootstrap Broker-0 [11/11]: zeebe partitions failed with unexpected exception.
    java.lang.IllegalStateException: Failed to load exporter with configuration: ExporterCfg{, jarPath='null', className='io.zeebe.exporters.kafka.KafkaExporter', args={maxInFlightRecords=1000, inFlightRecordCheckIntervalMs=1000, producers={servers={0=localhost:9092}, requestTimeoutMs=5000, closeTimeoutMs=5000, clientId=zeebe, maxConcurrentRequests=3}, records={defaults={type={0=event}, topic=zeebe}, deployment={topic=zeebe-deployment}, incident={topic=zeebe-incident}, jobBatch={topic=zeebe-job-batch}, job={topic=zeebe-job}, message={topic=zeebe-message}, messageSubscription={topic=zeebe-message-subscription}, messageStartEventSubscription={topic=zeebe-message-subscription-start-event}, raft={topic=zeebe-raft}, timer={topic=zeebe-timer}, variable={topic=zeebe-variable}, workflowInstance={type={0=event}, topic=zeebe-workflow}, workflowInstanceSubscription={topic=zeebe-workflow-subscription}}}}
    	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:140) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$partitionsStep$17(Broker.java:339) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.partitionsStep(Broker.java:346) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$initStart$9(Broker.java:183) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.internalStart(Broker.java:135) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.util.LogUtil.doWithMDC(LogUtil.java:21) [zeebe-util-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.start(Broker.java:115) [zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:59) [zeebe-distribution-0.23.1.jar:0.23.1]
    	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:768) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:322) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at io.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:46) [zeebe-distribution-0.23.1.jar:0.23.1]
    Caused by: io.zeebe.broker.exporter.repo.ExporterLoadException: Cannot load exporter [kafka]: failed validation
    	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:93) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	... 23 more
Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $.records.defaults.type
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:932) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:1003) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:975) ~[gson-2.8.6.jar:?]
        	at io.zeebe.broker.exporter.context.ExporterConfiguration.instantiate(ExporterConfiguration.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.exporters.kafka.KafkaExporter.configure(KafkaExporter.java:81) ~[zeebe-kafka-exporter-1.1.0-uber.jar:1.1.0]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:91) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	... 23 more
        Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $.records.defaults.type
        	at com.google.gson.internal.bind.JsonTreeReader.expect(JsonTreeReader.java:163) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.JsonTreeReader.beginArray(JsonTreeReader.java:72) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:932) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:1003) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:975) ~[gson-2.8.6.jar:?]
        	at io.zeebe.broker.exporter.context.ExporterConfiguration.instantiate(ExporterConfiguration.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.exporters.kafka.KafkaExporter.configure(KafkaExporter.java:81) ~[zeebe-kafka-exporter-1.1.0-uber.jar:1.1.0]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:91) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	... 23 more
        2020-05-11 11:28:30.156 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 [1/10]: leader management request handler
        2020-05-11 11:28:30.157 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 [2/10]: metric's server
        2020-05-11 11:28:30.161 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 [3/10]: topology manager
        2020-05-11 11:28:30.162 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 [4/10]: cluster services
        2020-05-11 11:28:30.162 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 [5/10]: embedded gateway
        2020-05-11 11:28:30.167 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 [6/10]: subscription api
        2020-05-11 11:28:30.167 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 [7/10]: command api handler
        2020-05-11 11:28:30.168 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 [8/10]: command api transport
        2020-05-11 11:28:32.413 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 [9/10]: membership and replication protocol
        2020-05-11 11:28:34.686 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 [10/10]: actor scheduler
        2020-05-11 11:28:34.687 [] [main] INFO  io.zeebe.broker.system - Closing Broker-0 succeeded. Closed 10 steps in 4531 ms.
        2020-05-11 11:28:34.688 [] [main] ERROR io.zeebe.broker.system - Failed to start broker 0!
        java.lang.IllegalStateException: Failed to load exporter with configuration: ExporterCfg{, jarPath='null', className='io.zeebe.exporters.kafka.KafkaExporter', args={maxInFlightRecords=1000, inFlightRecordCheckIntervalMs=1000, producers={servers={0=localhost:9092}, requestTimeoutMs=5000, closeTimeoutMs=5000, clientId=zeebe, maxConcurrentRequests=3}, records={defaults={type={0=event}, topic=zeebe}, deployment={topic=zeebe-deployment}, incident={topic=zeebe-incident}, jobBatch={topic=zeebe-job-batch}, job={topic=zeebe-job}, message={topic=zeebe-message}, messageSubscription={topic=zeebe-message-subscription}, messageStartEventSubscription={topic=zeebe-message-subscription-start-event}, raft={topic=zeebe-raft}, timer={topic=zeebe-timer}, variable={topic=zeebe-variable}, workflowInstance={type={0=event}, topic=zeebe-workflow}, workflowInstanceSubscription={topic=zeebe-workflow-subscription}}}}
        	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:140) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.Broker.lambda$partitionsStep$17(Broker.java:339) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.Broker.partitionsStep(Broker.java:346) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.Broker.lambda$initStart$9(Broker.java:183) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.Broker.internalStart(Broker.java:135) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.util.LogUtil.doWithMDC(LogUtil.java:21) [zeebe-util-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.Broker.start(Broker.java:115) [zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:59) [zeebe-distribution-0.23.1.jar:0.23.1]
        	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
        	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:768) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
        	at org.springframework.boot.SpringApplication.run(SpringApplication.java:322) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
        	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
        	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
        	at io.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:46) [zeebe-distribution-0.23.1.jar:0.23.1]
        Caused by: io.zeebe.broker.exporter.repo.ExporterLoadException: Cannot load exporter [kafka]: failed validation
        	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:93) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	... 23 more
        Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $.records.defaults.type
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:932) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:1003) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:975) ~[gson-2.8.6.jar:?]
        	at io.zeebe.broker.exporter.context.ExporterConfiguration.instantiate(ExporterConfiguration.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.exporters.kafka.KafkaExporter.configure(KafkaExporter.java:81) ~[zeebe-kafka-exporter-1.1.0-uber.jar:1.1.0]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:91) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	... 23 more
        Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $.records.defaults.type
        	at com.google.gson.internal.bind.JsonTreeReader.expect(JsonTreeReader.java:163) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.JsonTreeReader.beginArray(JsonTreeReader.java:72) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
        	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:932) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:1003) ~[gson-2.8.6.jar:?]
        	at com.google.gson.Gson.fromJson(Gson.java:975) ~[gson-2.8.6.jar:?]
        	at io.zeebe.broker.exporter.context.ExporterConfiguration.instantiate(ExporterConfiguration.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.exporters.kafka.KafkaExporter.configure(KafkaExporter.java:81) ~[zeebe-kafka-exporter-1.1.0-uber.jar:1.1.0]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:91) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
        	... 23 more
        2020-05-11 11:28:34.690 [] [main] INFO  org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener - 

    Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
    2020-05-11 11:28:34.691 [] [main] ERROR org.springframework.boot.SpringApplication - Application run failed
    java.lang.IllegalStateException: Failed to execute CommandLineRunner
    	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:787) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:768) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:322) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	at io.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:46) [zeebe-distribution-0.23.1.jar:0.23.1]
    Caused by: io.zeebe.util.exception.UncheckedExecutionException: Failed to start broker
    	at io.zeebe.broker.Broker.internalStart(Broker.java:142) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.util.LogUtil.doWithMDC(LogUtil.java:21) ~[zeebe-util-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.start(Broker.java:115) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:59) ~[zeebe-distribution-0.23.1.jar:0.23.1]
    	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	... 5 more
    Caused by: java.lang.IllegalStateException: Failed to load exporter with configuration: ExporterCfg{, jarPath='null', className='io.zeebe.exporters.kafka.KafkaExporter', args={maxInFlightRecords=1000, inFlightRecordCheckIntervalMs=1000, producers={servers={0=localhost:9092}, requestTimeoutMs=5000, closeTimeoutMs=5000, clientId=zeebe, maxConcurrentRequests=3}, records={defaults={type={0=event}, topic=zeebe}, deployment={topic=zeebe-deployment}, incident={topic=zeebe-incident}, jobBatch={topic=zeebe-job-batch}, job={topic=zeebe-job}, message={topic=zeebe-message}, messageSubscription={topic=zeebe-message-subscription}, messageStartEventSubscription={topic=zeebe-message-subscription-start-event}, raft={topic=zeebe-raft}, timer={topic=zeebe-timer}, variable={topic=zeebe-variable}, workflowInstance={type={0=event}, topic=zeebe-workflow}, workflowInstanceSubscription={topic=zeebe-workflow-subscription}}}}
    	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:140) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$partitionsStep$17(Broker.java:339) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.partitionsStep(Broker.java:346) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$initStart$9(Broker.java:183) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.internalStart(Broker.java:135) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.util.LogUtil.doWithMDC(LogUtil.java:21) ~[zeebe-util-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.start(Broker.java:115) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:59) ~[zeebe-distribution-0.23.1.jar:0.23.1]
    	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	... 5 more
    Caused by: io.zeebe.broker.exporter.repo.ExporterLoadException: Cannot load exporter [kafka]: failed validation
    	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:93) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$partitionsStep$17(Broker.java:339) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.partitionsStep(Broker.java:346) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$initStart$9(Broker.java:183) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.internalStart(Broker.java:135) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.util.LogUtil.doWithMDC(LogUtil.java:21) ~[zeebe-util-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.start(Broker.java:115) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:59) ~[zeebe-distribution-0.23.1.jar:0.23.1]
    	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	... 5 more
    Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $.records.defaults.type
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:932) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:1003) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:975) ~[gson-2.8.6.jar:?]
    	at io.zeebe.broker.exporter.context.ExporterConfiguration.instantiate(ExporterConfiguration.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.exporters.kafka.KafkaExporter.configure(KafkaExporter.java:81) ~[zeebe-kafka-exporter-1.1.0-uber.jar:1.1.0]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:91) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$partitionsStep$17(Broker.java:339) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.partitionsStep(Broker.java:346) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$initStart$9(Broker.java:183) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.internalStart(Broker.java:135) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.util.LogUtil.doWithMDC(LogUtil.java:21) ~[zeebe-util-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.start(Broker.java:115) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:59) ~[zeebe-distribution-0.23.1.jar:0.23.1]
    	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	... 5 more
    Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $.records.defaults.type
    	at com.google.gson.internal.bind.JsonTreeReader.expect(JsonTreeReader.java:163) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.JsonTreeReader.beginArray(JsonTreeReader.java:72) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.6.jar:?]
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:932) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:1003) ~[gson-2.8.6.jar:?]
    	at com.google.gson.Gson.fromJson(Gson.java:975) ~[gson-2.8.6.jar:?]
    	at io.zeebe.broker.exporter.context.ExporterConfiguration.instantiate(ExporterConfiguration.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.exporters.kafka.KafkaExporter.configure(KafkaExporter.java:81) ~[zeebe-kafka-exporter-1.1.0-uber.jar:1.1.0]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.validate(ExporterRepository.java:91) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:54) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:84) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.system.partitions.ZeebePartition.<init>(ZeebePartition.java:138) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$partitionsStep$17(Broker.java:339) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.partitionsStep(Broker.java:346) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.lambda$initStart$9(Broker.java:183) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.lambda$startStepByStep$2(StartProcess.java:60) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.startStepByStep(StartProcess.java:58) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.takeDuration(StartProcess.java:88) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.bootstrap.StartProcess.start(StartProcess.java:43) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.internalStart(Broker.java:135) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.util.LogUtil.doWithMDC(LogUtil.java:21) ~[zeebe-util-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.Broker.start(Broker.java:115) ~[zeebe-broker-0.23.1.jar:0.23.1]
    	at io.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:59) ~[zeebe-distribution-0.23.1.jar:0.23.1]
    	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    	... 5 more

Hi Michael, the Kafka exporter is a little outdated and hasn’t been updated yet for 0.23.x, so chances are it may not work with it. It’s a community project I started a while back, but have been too busy to really keep up with. I’m more than happy to review PRs however - otherwise you will have to wait until I find time to update it. Sorry for that :frowning:

Thanks for the reply. I’ll have to take a look at it myself for now then. One question I have by looking over the logs, do you think that the only issue here is a configuration related issue, or do you think that the exporter itself needs to be updated as well?

Hi,

I stumbled on this thread as I’m looking to do the same as you and get an export out of Zeebe 0.23 to Kafka.

I’m wading into the code but since it’s 10 years since I last turned my hand to Java, I’m a bit rusty.

Did you get anywhere with this? I’ll keep digging in…

1 Like

Hey Nigel. I created a workaround for this myself. basically I changed some of the code to change the expected types of the fields in question to allow the broker to be config’d properly. I’ll create a git repo to hold the code temporarily while a fix is developed.

Here is the repo: https://github.com/mdiloreto16/temp-zeebe-kafka-exporter

1 Like

Hi Team,
I am also looking same and i am using zeebe-kafka-exporter-4.0.0-SNAPSHOT-jar-with-dependencies,jar but while running zeebe. i am facing 2023-11-27 09:55:51 2023-11-27 05:55:51.620 [kafka-producer-network-thread | zeebe-3f1ec511-5948-4a51-86fc-df77f44e530f] WARN
2023-11-27 09:55:51 org.apache.kafka.clients.NetworkClient - [Producer clientId=zeebe-3f1ec511-5948-4a51-86fc-df77f44e530f, transactionalId=3f1ec511-5948-4a51-86fc-df77f44e530f] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.
2023-11-27 09:55:51 2023-11-27 05:55:51.620 [kafka-producer-network-thread | zeebe-3f1ec511-5948-4a51-86fc-df77f44e530f] WARN
2023-11-27 09:55:51 org.apache.kafka.clients.NetworkClient - [Producer clientId=zeebe-3f1ec511-5948-4a51-86fc-df77f44e530f, transactionalId=3f1ec511-5948-4a51-86fc-df77f44e530f] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected this issue.