From d54b9ee57135ebde24e1bc192fa5f0f0cb6d16b5 Mon Sep 17 00:00:00 2001 From: Miguel de Barros Date: Fri, 13 Oct 2023 09:05:28 +0000 Subject: [PATCH] 20231011@13h59 --- .env | 17 +- README.md | 2 +- automate_perf.sh | 2 +- docker-compose-perf.yml | 18 +- .../configs/central-handlers-kafka.js | 205 ++++++++++++++++++ .../configs/central-handlers.js | 5 + .../ml-api-adapter-disabled-handlers-kafka.js | 71 ++++++ .../configs/ml-handler-notification-kafka.js | 68 ++++++ .../configs/quoting-service-perf.js | 5 +- docker/prometheus/prometheus.yml | 11 +- .../kafaka-partitioner-calculator/index.js | 33 ++- perf.env | 25 ++- 12 files changed, 434 insertions(+), 28 deletions(-) create mode 100644 docker/config-modifier/configs/central-handlers-kafka.js create mode 100644 docker/config-modifier/configs/ml-api-adapter-disabled-handlers-kafka.js create mode 100644 docker/config-modifier/configs/ml-handler-notification-kafka.js diff --git a/.env b/.env index 7ebfae11..67e8299d 100644 --- a/.env +++ b/.env @@ -1,14 +1,17 @@ ## Mojaloop Docker Image Versions -ML_API_ADAPTER_VERSION=v14.0.1 +# ML_API_ADAPTER_VERSION=v14.0.1 +ML_API_ADAPTER_VERSION=v14.0.4 ## ALS initial baseline with version included in Mojaloop v15.1.0 Helm Release # ACCOUNT_LOOKUP_SERVICE_VERSION=v14.2.2 ## ALS published version with included fix: JSON.stringify disabled in logResponse function ACCOUNT_LOOKUP_SERVICE_VERSION=v14.2.3 ## ALS snapshot release with fix: v14.2.3 + caching for validateParticipant and resolve Participants via Oracles # ACCOUNT_LOOKUP_SERVICE_VERSION=v14.2.4-snapshot.3 -QUOTING_SERVICE_VERSION=v15.1.0 +# QUOTING_SERVICE_VERSION=v15.2.1 +QUOTING_SERVICE_VERSION=v15.2.3-snapshot.2 ## CL initial baseline with version included in Mojaloop v15.1.0 Helm Release -CENTRAL_LEDGER_VERSION=v17.2.0 +# CENTRAL_LEDGER_VERSION=v17.2.0 +CENTRAL_LEDGER_VERSION=v17.2.1 ## CL snapshot release with included fix: JSON.stringify disabled in logResponse function # CENTRAL_LEDGER_VERSION=v17.0.4-snapshot.0 ## Central Ledger version with batch processing capability @@ -42,8 +45,8 @@ K6_VERSION=0.45.0 ## Performance Testing Replicas QS_REPLICAS=1 ALS_REPLICAS=1 -CENTRAL_LEDGER_GENERAL_REPLICAS=4 -CENTRAL_LEDGER_POSITION_REPLICAS=8 +CENTRAL_LEDGER_GENERAL_REPLICAS=1 +CENTRAL_LEDGER_POSITION_REPLICAS=1 CENTRAL_LEDGER_POSITION_BATCH_REPLICAS=0 -ML_API_ADAPTER_REPLICAS=4 -ML_NOTIFICATION_REPLICAS=4 +ML_API_ADAPTER_REPLICAS=1 +ML_NOTIFICATION_REPLICAS=1 diff --git a/README.md b/README.md index 6a3079ea..76a7f130 100644 --- a/README.md +++ b/README.md @@ -247,7 +247,7 @@ docker compose --project-name monitoring -f docker-compose-monitoring.yml up -d Stop Monitoring Services ```bash -docker compose --project-name monitoring --profile als-test -f docker-compose-monitoring.yml down -v +docker compose --project-name monitoring --profile als-test --profile transfers-test -f docker-compose-monitoring.yml down -v ``` Start monitoring with account lookup service mysql exporter diff --git a/automate_perf.sh b/automate_perf.sh index f85eeaee..14b85add 100755 --- a/automate_perf.sh +++ b/automate_perf.sh @@ -82,7 +82,7 @@ declare -a dashboards=(\ "Official%20k6%20Test%20Result" \ "MySQL%20Overview" \ "Supporting%20Services%20-%20Callback%20Hander%20Service" \ - "mojaloop-quoting-service" + "Mojaloop%20-%20Quoting%20Service" ) # # create a directory to store the results with date timestamp in the name, check if the directory exists diff --git a/docker-compose-perf.yml b/docker-compose-perf.yml index 48fe6a10..72fa88fd 100644 --- a/docker-compose-perf.yml +++ b/docker-compose-perf.yml @@ -138,7 +138,7 @@ services: deploy: mode: replicated replicas: ${CENTRAL_LEDGER_GENERAL_REPLICAS} - command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/central-ledger-disabled-handlers.js /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/api/index.js" + command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/$$CONF_CL_SVC /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/api/index.js" # ports: # - "3001:3001" volumes: @@ -186,7 +186,7 @@ services: deploy: mode: replicated replicas: ${CENTRAL_LEDGER_GENERAL_REPLICAS} - command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/central-handlers.js /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/handlers/index.js handler --prepare" + command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/$$CONF_CL_HANDLER_PREPARE /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/handlers/index.js handler --prepare" # ports: # - "3001:3001" volumes: @@ -230,7 +230,7 @@ services: deploy: mode: replicated replicas: ${CENTRAL_LEDGER_POSITION_REPLICAS} - command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/central-handlers.js /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/handlers/index.js handler --position" + command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/$$CONF_CL_HANDLER_POSITION /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/handlers/index.js handler --position" # ports: # - "3001:3001" volumes: @@ -274,7 +274,7 @@ services: deploy: mode: replicated replicas: ${CENTRAL_LEDGER_POSITION_BATCH_REPLICAS} - command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/central-handlers.js /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/handlers/index.js handler --positionbatch" + command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/$$CONF_CL_HANDLER_POSITION_BATCH /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/handlers/index.js handler --positionbatch" # ports: # - "3001:3001" volumes: @@ -314,7 +314,7 @@ services: deploy: mode: replicated replicas: ${CENTRAL_LEDGER_GENERAL_REPLICAS} - command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/central-handlers.js /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/handlers/index.js handler --fulfil" + command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/$$CONF_CL_HANDLER_FULFIL /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/handlers/index.js handler --fulfil" # ports: # - "3001:3001" volumes: @@ -435,7 +435,7 @@ services: deploy: mode: replicated replicas: 1 # We dont need to scale this unless we are testing funds-in/out - command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/central-handlers.js /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/handlers/index.js handler --admin" + command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/$$CONF_CL_HANDLER_ADMIN /opt/app/config/default.json && /opt/app/wait4/wait4.js central-ledger && node src/handlers/index.js handler --admin" # ports: # - "3001:3001" volumes: @@ -640,7 +640,7 @@ services: mode: replicated replicas: ${ML_API_ADAPTER_REPLICAS} # container_name: ml-api-adapter - command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/ml-api-adapter-disabled-handlers.js /opt/app/config/default.json && /opt/app/wait4/wait4.js ml-api-adapter && node src/api/index.js" + command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/$$CONF_ML_API_ADAPTER /opt/app/config/default.json && /opt/app/wait4/wait4.js ml-api-adapter && node src/api/index.js" # ports: # - "3000:3000" volumes: @@ -649,7 +649,7 @@ services: environment: # - LOG_LEVEL=error - EVENT_SDK_TRACEID_PER_VENDOR=false - # - MLAPI_TRANSFERS__SEND_TRANSFER_CONFIRMATION_TO_PAYEE=false + - MLAPI_TRANSFERS__SEND_TRANSFER_CONFIRMATION_TO_PAYEE=false networks: - mojaloop-net depends_on: @@ -678,7 +678,7 @@ services: deploy: mode: replicated replicas: ${ML_NOTIFICATION_REPLICAS} - command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/ml-handler-notification.js /opt/app/config/default.json && /opt/app/wait4/wait4.js ml-api-adapter && node src/handlers/index.js handler --notification" + command: sh -c "/opt/app/config-modifier/run.js /opt/app/config/default.json /opt/app/config-modifier/configs/$$CONF_ML_HANDLER_NOTIFY /opt/app/config/default.json && /opt/app/wait4/wait4.js ml-api-adapter && node src/handlers/index.js handler --notification" # ports: # - "3000:3000" # - "9229:9229" diff --git a/docker/config-modifier/configs/central-handlers-kafka.js b/docker/config-modifier/configs/central-handlers-kafka.js new file mode 100644 index 00000000..1bac4b6e --- /dev/null +++ b/docker/config-modifier/configs/central-handlers-kafka.js @@ -0,0 +1,205 @@ +module.exports = { + "HOSTNAME": "http://central-ledger", + "DATABASE": { + "HOST": "mysql-cl" + }, + "MIGRATIONS": { + "DISABLED": true, + "RUN_DATA_MIGRATIONS": true + }, + "MONGODB": { + "DISABLED": true, + "HOST": "objstore", + "PORT": 27017, + "USER": "", + "PASSWORD": "", + "DATABASE": "mlos" + }, + "CACHE": { + "CACHE_ENABLED": true, + "MAX_BYTE_SIZE": 10000000, + "EXPIRES_IN_MS": 1000 + }, + "KAFKA": { + "CONSUMER": { + "BULK": { + "PREPARE": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + }, + "PROCESSING": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + }, + "FULFIL": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + }, + "GET": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + } + }, + "TRANSFER": { + "PREPARE": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + }, + "GET": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + }, + "FULFIL": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + }, + "POSITION": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + } + }, + "ADMIN": { + "TRANSFER": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + } + } + }, + "PRODUCER": { + "BULK": { + "PROCESSING": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "queue.buffering.max.messages": 0, + "compression.codec": "lz4", + "metadata.broker.list": "kafka:29092" + } + } + } + }, + "TRANSFER": { + "PREPARE": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "queue.buffering.max.messages": 0, + "compression.codec": "lz4", + "metadata.broker.list": "kafka:29092" + } + } + }, + "FULFIL": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "queue.buffering.max.messages": 0, + "compression.codec": "lz4", + "metadata.broker.list": "kafka:29092" + } + } + }, + "POSITION": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "queue.buffering.max.messages": 0, + "compression.codec": "lz4", + "metadata.broker.list": "kafka:29092" + } + } + } + }, + "NOTIFICATION": { + "EVENT": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "queue.buffering.max.messages": 0, + "compression.codec": "lz4", + "metadata.broker.list": "kafka:29092" + } + } + } + }, + "ADMIN": { + "TRANSFER": { + "config": { + "options": { + "sync": false, + }, + "rdkafkaConf": { + "queue.buffering.max.messages": 0, + "compression.codec": "lz4", + "metadata.broker.list": "kafka:29092" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/docker/config-modifier/configs/central-handlers.js b/docker/config-modifier/configs/central-handlers.js index 5b7d36c1..f968a777 100644 --- a/docker/config-modifier/configs/central-handlers.js +++ b/docker/config-modifier/configs/central-handlers.js @@ -15,6 +15,11 @@ module.exports = { "PASSWORD": "", "DATABASE": "mlos" }, + "CACHE": { + "CACHE_ENABLED": true, + "MAX_BYTE_SIZE": 10000000, + "EXPIRES_IN_MS": 1000 + }, "KAFKA": { "CONSUMER": { "BULK": { diff --git a/docker/config-modifier/configs/ml-api-adapter-disabled-handlers-kafka.js b/docker/config-modifier/configs/ml-api-adapter-disabled-handlers-kafka.js new file mode 100644 index 00000000..b248acae --- /dev/null +++ b/docker/config-modifier/configs/ml-api-adapter-disabled-handlers-kafka.js @@ -0,0 +1,71 @@ +module.exports = { + "HOSTNAME": "http://ml-api-adapter", + "ENDPOINT_SOURCE_URL": "http://central-ledger:3001", + "ENDPOINT_HEALTH_URL": "http://central-ledger:3001/health", + "HANDLERS": { + "DISABLED": true, + "API": { + "DISABLED": false + } + }, + "KAFKA": { + "CONSUMER": { + "NOTIFICATION": { + "EVENT": { + "config": { + "options": { + "mode": 2, + "batchSize": 4, + "syncConcurrency": 4, + "syncSingleMessage": true, + "sync": true + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + } + } + }, + "PRODUCER": { + "TRANSFER": { + "PREPARE": { + "config": { + "options": { + "sync": true + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092", + "queue.buffering.max.ms": 0, + // "compression.codec": "lz4", + } + } + }, + "FULFIL": { + "config": { + "options": { + "sync": true + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092", + "queue.buffering.max.ms": 0, + // "compression.codec": "lz4", + } + } + }, + "GET": { + "config": { + "options": { + "sync": true + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092", + "queue.buffering.max.ms": 0, + // "compression.codec": "lz4", + } + } + } + } + } + } +} diff --git a/docker/config-modifier/configs/ml-handler-notification-kafka.js b/docker/config-modifier/configs/ml-handler-notification-kafka.js new file mode 100644 index 00000000..055b9bf0 --- /dev/null +++ b/docker/config-modifier/configs/ml-handler-notification-kafka.js @@ -0,0 +1,68 @@ +module.exports = { + "HOSTNAME": "http://ml-handler-notification", + "ENDPOINT_SOURCE_URL": "http://central-ledger:3001", + "ENDPOINT_HEALTH_URL": "http://central-ledger:3001/health", + "TRANSFERS": { + "SEND_TRANSFER_CONFIRMATION_TO_PAYEE": false + }, + "KAFKA": { + "CONSUMER": { + "NOTIFICATION": { + "EVENT": { + "config": { + "options": { + "mode": 2, + "batchSize": 4, + "syncConcurrency": 4, + "syncSingleMessage": true, + "sync": true + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092" + } + } + } + } + }, + "PRODUCER": { + "TRANSFER": { + "PREPARE": { + "config": { + "options": { + "sync": true + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092", + "queue.buffering.max.ms": 0, + "compression.codec": "lz4", + } + } + }, + "FULFIL": { + "config": { + "options": { + "sync": true + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092", + "queue.buffering.max.ms": 0, + "compression.codec": "lz4", + } + } + }, + "GET": { + "config": { + "options": { + "sync": true + }, + "rdkafkaConf": { + "metadata.broker.list": "kafka:29092", + "queue.buffering.max.ms": 0, + "compression.codec": "lz4", + } + } + } + } + } + } +} \ No newline at end of file diff --git a/docker/config-modifier/configs/quoting-service-perf.js b/docker/config-modifier/configs/quoting-service-perf.js index 8c6a32f5..3a746880 100644 --- a/docker/config-modifier/configs/quoting-service-perf.js +++ b/docker/config-modifier/configs/quoting-service-perf.js @@ -4,5 +4,8 @@ module.exports = { "HOST": "mysql-cl" }, "SIMPLE_ROUTING_MODE": false, - "SWITCH_ENDPOINT": "http://callback-handler-svc-cl-sim:3001/admin" + "SWITCH_ENDPOINT": "http://callback-handler-svc-cl-sim:3001/admin", + "CACHE": { + "EXPIRES_IN_MS": 60000 + } } diff --git a/docker/prometheus/prometheus.yml b/docker/prometheus/prometheus.yml index 986cfacb..b41944e7 100644 --- a/docker/prometheus/prometheus.yml +++ b/docker/prometheus/prometheus.yml @@ -112,6 +112,12 @@ scrape_configs: 'ml-core-quoting-service-2:3002', 'ml-core-quoting-service-3:3002', 'ml-core-quoting-service-4:3002', + 'ml-core-quoting-service-5:3002', + 'ml-core-quoting-service-6:3002', + 'ml-core-quoting-service-7:3002', + 'ml-core-quoting-service-8:3002', + 'ml-core-quoting-service-9:3002', + 'ml-core-quoting-service-10:3002', # 'central-handler-get:3001', ] @@ -132,7 +138,10 @@ scrape_configs: 'sim-perffsp7:3001', 'sim-perffsp8:3001', 'callback-handler-svc-oracle-sim:3001', - 'callback-handler-svc-cl-sim:3001', + 'ml-core-callback-handler-svc-cl-sim-1:3001', + 'ml-core-callback-handler-svc-cl-sim-2:3001', + 'ml-core-callback-handler-svc-cl-sim-3:3001', + 'ml-core-callback-handler-svc-cl-sim-4:3001', 'mysqlexporter-als:9104', 'mysqlexporter-cl:9104', 'kafka-exporter:9308', diff --git a/packages/kafaka-partitioner-calculator/index.js b/packages/kafaka-partitioner-calculator/index.js index a9d18591..69639487 100644 --- a/packages/kafaka-partitioner-calculator/index.js +++ b/packages/kafaka-partitioner-calculator/index.js @@ -1,8 +1,31 @@ const utf8 = require('utf8'); murmurhash = require('murmurhash'); -const FSP_PREFIX = 'perffsp' -const FSP_NUM = 8 +// Run the following SQL query to get the list of Account ID +// docker exec -it mysql-cl mysql -D central_ledger -e 'select PC.participantCurrencyId from participantCurrency as PC, participant as P, ledgerAccountType as LT where PC.ledgerAccountTypeId=1 AND PC.participantId = P.participantId and LT.ledgerAccountTypeId=PC.ledgerAccountTypeId and P.name LIKE "perffsp%" and PC.currencyId="USD";' + +const FSP_LIST = [ + '7', + '15', + '23', + '31', + '39', + '47', + '55', + '63' +] + +//// Old FSP_LIST +// const FSP_LIST = [ +// 'perffsp1', +// 'perffsp2', +// 'perffsp3', +// 'perffsp4', +// 'perffsp5', +// 'perffsp6', +// 'perffsp7', +// 'perffsp8', +// ] const MAX_INTEGER_SIGNED = 0x7fffffff // ref: https://github.com/apache/pinot/blob/master/pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/partition/MurmurPartitionFunction.java#L45 const KAFKA_SEED = 0x9747b28c // ref: https://github.com/a0x8o/kafka/blob/master/clients/src/main/java/org/apache/kafka/common/utils/Utils.java#L481 @@ -11,9 +34,11 @@ const ATTEMPTS = parseInt(process.env.ATTEMPTS) || 100 function getPartitionAllocationMap(totalPartitions, breakOnCollision = false) { let partitionFspMap = {} + + const fspNum = FSP_LIST.length - for (let i=1; i<=FSP_NUM; i++) { - const fsp = FSP_PREFIX + i + for (let i=1; i<=fspNum; i++) { + const fsp = FSP_LIST[i-1] const hash = murmurhash.v2(utf8.encode(fsp), KAFKA_SEED) const selectedPartition = (hash & MAX_INTEGER_SIGNED) % totalPartitions; if (partitionFspMap[selectedPartition]) { diff --git a/perf.env b/perf.env index 0b132858..929047e4 100644 --- a/perf.env +++ b/perf.env @@ -62,10 +62,10 @@ LOG_LEVEL=info ## Disable Audit & Trace events from being dumped to logfile # EVENT_SDK_LOG_FILTER="" -KAFKA_GENERAL_PARTITIONS_NUM=19 -KAFKA_POSITION_PARTITIONS_NUM=19 -KAFKA_POSITION_BATCH_PARTITIONS_NUM=19 -KAFKA_NOTIFICATION_PARTITIONS_NUM=19 +KAFKA_GENERAL_PARTITIONS_NUM=4 +KAFKA_POSITION_PARTITIONS_NUM=25 +KAFKA_POSITION_BATCH_PARTITIONS_NUM=4 +KAFKA_NOTIFICATION_PARTITIONS_NUM=4 ALS_DATABASE__HOST=mysql-als ALS_DATABASE__USER=account_lookup @@ -92,3 +92,20 @@ CLEDG_DATABASE__SCHEMA=central_ledger ## To enable position batch handlers, set CENTRAL_LEDGER_POSITION_BATCH_REPLICAS to desired count # CLEDG_KAFKA__EVENT_TYPE_ACTION_TOPIC_MAP__POSITION__PREPARE=topic-transfer-position-batch +## Configs for default +CONF_ML_API_ADAPTER=ml-api-adapter-disabled-handlers.js +CONF_ML_HANDLER_NOTIFY=ml-handler-notification.js +CONF_CL_SVC=central-ledger-disabled-handlers.js +CONF_CL_HANDLER_PREPARE=central-handlers.js +CONF_CL_HANDLER_POSITION=central-handlers.js +CONF_CL_HANDLER_POSITION_BATCH=central-handlers.js +CONF_CL_HANDLER_FULFIL=central-handlers.js +CONF_CL_HANDLER_ADMIN=central-handlers.js + +## Configs for optimised Kafka configs +# CONF_ML_API_ADAPTER=ml-api-adapter-disabled-handlers-kafka.js +# CONF_ML_HANDLER_NOTIFY=ml-handler-notification-kafka.js +# CONF_CL_HANDLER_PREPARE=central-handlers-kafka.js +# CONF_CL_HANDLER_POSITION=central-handlers-kafka.js +# CONF_CL_HANDLER_POSITION_BATCH=central-handlers-kafka.js +# CONF_CL_HANDLER_FULFIL=central-handlers-kafka.js