{
  "ENDPOINT_SOURCE_URL": "http://localhost:3001",
  "ENDPOINT_CACHE_CONFIG": {
    "expiresIn": 180000,
    "generateTimeout": 30000
  },
  "PARTICIPANT_CACHE_CONFIG": {
    "expiresIn": 3000,
    "generateTimeout": 30000,
    "getDecoratedValue": true
  },
  "KAFKA": {
    "TOPIC_TEMPLATES": {
      "PARTICIPANT_TOPIC_TEMPLATE": {
        "TEMPLATE": "topic-{{participantName}}-{{functionality}}-{{action}}",
        "REGEX": "topic-(.*)-(.*)-(.*)"
      },
      "GENERAL_TOPIC_TEMPLATE": {
        "TEMPLATE": "topic-{{functionality}}-{{action}}",
        "REGEX": "topic-(.*)-(.*)"
      }
    },
    "CONSUMER": {
      "BULK": {
        "PREPARE": {
          "config": {
            "options": {
              "mode": 2,
              "batchSize": 1,
              "pollFrequency": 10,
              "recursiveTimeout": 100,
              "messageCharset": "utf8",
              "messageAsJSON": true,
              "sync": true,
              "consumeTimeout": 1000
            },
            "rdkafkaConf": {
              "client.id": "cl-con-bulk-prepare",
              "group.id": "cl-group-bulk-prepare",
              "metadata.broker.list": "localhost:9092",
              "socket.keepalive.enable": true
            },
            "topicConf": {
              "auto.offset.reset": "earliest"
            }
          }
        },
        "PROCESSING": {
          "config": {
            "options": {
              "mode": 2,
              "batchSize": 1,
              "pollFrequency": 10,
              "recursiveTimeout": 100,
              "messageCharset": "utf8",
              "messageAsJSON": true,
              "sync": true,
              "consumeTimeout": 1000
            },
            "rdkafkaConf": {
              "client.id": "cl-con-bulk-processing",
              "group.id": "cl-group-bulk-processing",
              "metadata.broker.list": "localhost:9092",
              "socket.keepalive.enable": true
            },
            "topicConf": {
              "auto.offset.reset": "earliest"
            }
          }
        },
        "FULFIL": {
          "config": {
            "options": {
              "mode": 2,
              "batchSize": 1,
              "pollFrequency": 10,
              "recursiveTimeout": 100,
              "messageCharset": "utf8",
              "messageAsJSON": true,
              "sync": true,
              "consumeTimeout": 1000
            },
            "rdkafkaConf": {
              "client.id": "cl-con-bulk-fulfil",
              "group.id": "cl-group-bulk-fulfil",
              "metadata.broker.list": "localhost:9092",
              "socket.keepalive.enable": true
            },
            "topicConf": {
              "auto.offset.reset": "earliest"
            }
          }
        }
      },
      "TRANSFER": {
        "PREPARE": {
          "config": {
            "options": {
              "mode": 2,
              "batchSize": 1,
              "pollFrequency": 10,
              "recursiveTimeout": 100,
              "messageCharset": "utf8",
              "messageAsJSON": true,
              "sync": true,
              "consumeTimeout": 1000
            },
            "rdkafkaConf": {
              "client.id": "cl-con-transfer-prepare",
              "group.id": "cl-group-transfer-prepare",
              "metadata.broker.list": "localhost:9092",
              "socket.keepalive.enable": true
            },
            "topicConf": {
              "auto.offset.reset": "earliest"
            }
          }
        },
        "GET": {
          "config": {
            "options": {
              "mode": 2,
              "batchSize": 1,
              "pollFrequency": 10,
              "recursiveTimeout": 100,
              "messageCharset": "utf8",
              "messageAsJSON": true,
              "sync": true,
              "consumeTimeout": 1000
            },
            "rdkafkaConf": {
              "client.id": "cl-con-transfer-get",
              "group.id": "cl-group-transfer-get",
              "metadata.broker.list": "localhost:9092",
              "socket.keepalive.enable": true
            },
            "topicConf": {
              "auto.offset.reset": "earliest"
            }
          }
        },
        "FULFIL": {
          "config": {
            "options": {
              "mode": 2,
              "batchSize": 1,
              "pollFrequency": 10,
              "recursiveTimeout": 100,
              "messageCharset": "utf8",
              "messageAsJSON": true,
              "sync": true,
              "consumeTimeout": 1000
            },
            "rdkafkaConf": {
              "client.id": "cl-con-transfer-fulfil",
              "group.id": "cl-group-transfer-fulfil",
              "metadata.broker.list": "localhost:9092",
              "socket.keepalive.enable": true
            },
            "topicConf": {
              "auto.offset.reset": "earliest"
            }
          }
        },
        "POSITION": {
          "config": {
            "options": {
              "mode": 2,
              "batchSize": 1,
              "pollFrequency": 10,
              "recursiveTimeout": 100,
              "messageCharset": "utf8",
              "messageAsJSON": true,
              "sync": true,
              "consumeTimeout": 1000
            },
            "rdkafkaConf": {
              "client.id": "cl-con-transfer-position",
              "group.id": "cl-group-transfer-position",
              "metadata.broker.list": "localhost:9092",
              "socket.keepalive.enable": true
            },
            "topicConf": {
              "auto.offset.reset": "earliest"
            }
          }
        }
      },
      "ADMIN": {
        "TRANSFER": {
          "config": {
            "options": {
              "mode": 2,
              "batchSize": 1,
              "pollFrequency": 10,
              "recursiveTimeout": 100,
              "messageCharset": "utf8",
              "messageAsJSON": true,
              "sync": true,
              "consumeTimeout": 1000
            },
            "rdkafkaConf": {
              "client.id": "cl-con-transfer-admin",
              "group.id": "cl-group-transfer-admin",
              "metadata.broker.list": "localhost:9092",
              "socket.keepalive.enable": true
            },
            "topicConf": {
              "auto.offset.reset": "earliest"
            }
          }
        }
      }
    },
    "PRODUCER": {
      "BULK": {
        "PROCESSING": {
          "config": {
            "options": {
              "messageCharset": "utf8"
            },
            "rdkafkaConf": {
              "metadata.broker.list": "localhost:9092",
              "client.id": "cl-prod-bulk-processing",
              "event_cb": true,
              "dr_cb": true,
              "socket.keepalive.enable": true,
              "queue.buffering.max.messages": 10000000
            },
            "topicConf": {
              "request.required.acks": "all"
            }
          }
        }
      },
      "TRANSFER": {
        "PREPARE": {
          "config": {
            "options": {
              "messageCharset": "utf8"
            },
            "rdkafkaConf": {
              "metadata.broker.list": "localhost:9092",
              "client.id": "cl-prod-transfer-prepare",
              "event_cb": true,
              "dr_cb": true,
              "socket.keepalive.enable": true,
              "queue.buffering.max.messages": 10000000
            },
            "topicConf": {
              "request.required.acks": "all"
            }
          }
        },
        "FULFIL": {
          "config": {
            "options": {
              "messageCharset": "utf8"
            },
            "rdkafkaConf": {
              "metadata.broker.list": "localhost:9092",
              "client.id": "cl-prod-transfer-fulfil",
              "event_cb": true,
              "dr_cb": true,
              "socket.keepalive.enable": true,
              "queue.buffering.max.messages": 10000000
            },
            "topicConf": {
              "request.required.acks": "all"
            }
          }
        },
        "POSITION": {
          "config": {
            "options": {
              "messageCharset": "utf8"
            },
            "rdkafkaConf": {
              "metadata.broker.list": "localhost:9092",
              "client.id": "cl-prod-transfer-position",
              "event_cb": true,
              "dr_cb": true,
              "socket.keepalive.enable": true,
              "queue.buffering.max.messages": 10000000
            },
            "topicConf": {
              "request.required.acks": "all"
            }
          }
        }
      },
      "NOTIFICATION": {
        "EVENT": {
          "config": {
            "options": {
              "messageCharset": "utf8"
            },
            "rdkafkaConf": {
              "metadata.broker.list": "localhost:9092",
              "client.id": "cl-prod-notification-event",
              "event_cb": true,
              "dr_cb": true,
              "socket.keepalive.enable": true,
              "queue.buffering.max.messages": 10000000
            },
            "topicConf": {
              "request.required.acks": "all"
            }
          }
        }
      },
      "ADMIN": {
        "TRANSFER": {
          "config": {
            "options": {
              "messageCharset": "utf8"
            },
            "rdkafkaConf": {
              "metadata.broker.list": "localhost:9092",
              "client.id": "cl-prod-transfer-admin",
              "event_cb": true,
              "dr_cb": true,
              "socket.keepalive.enable": true,
              "queue.buffering.max.messages": 10000000
            },
            "topicConf": {
              "request.required.acks": "all"
            }
          }
        }
      }
    }
  }
}
