@Override
    public void processExtraArgs(Connect<StandaloneHerder> connect, String[] extraArgs) {
        try {
            for (final String connectorConfigFile : extraArgs) {
                CreateConnectorRequest createConnectorRequest = parseConnectorConfigurationFile(connectorConfigFile);
                FutureCallback<Herder.Created<ConnectorInfo>> cb = new FutureCallback<>((error, info) -> {
                    if (error != null)
                        log.error("Failed to create connector for {}", connectorConfigFile);
                    else
                        log.info("Created connector {}", info.result().name());
                });
                connect.herder().putConnectorConfig(
                    createConnectorRequest.name(), createConnectorRequest.config(),
                    createConnectorRequest.initialTargetState(),
                    false, cb);
                cb.get();
            }
            connect.herder().ready();
        } catch (Throwable t) {
            log.error("Stopping after connector error", t);
            connect.stop();
            Exit.exit(3);
        }
    }
<p>
Command line utility that runs Kafka Connect as a standalone process. In this mode, work (connectors and tasks) is not
distributed. Instead, all the normal Connect machinery works within a single process. This is useful for ad hoc,
small, or experimental jobs.
</p>
<p>
Connector and task configs are stored in memory and are not persistent. However, connector offset data is persistent
since it uses file storage (configurable via {@link StandaloneConfig#OFFSET_STORAGE_FILE_FILENAME_CONFIG})
</p>
connect/runtime/src/main/java/org/apache/kafka/connect/cli/ConnectStandalone.java