Apache Avro Client Library Configuration Options

It is important to configure the Schema Repository correctly and manage changes so schemas are always application ready.

You can set the following Apache Avro client library configuration options programmatically with Java properties for either an Apache Kafka producer or consumer.

Access Configuration Properties

ftl.realmservers

Type: String

Pipe-delimited list of FTL Server URLs.

Default: localhost:8081.

schema.registry.url

Type: String

Comma-delimited list of Schema Registry URLs; this overrides the list in ftl.realmservers if set.

Caution: This property is not recommended. This schema.registry.url property is intended primarily for compatibility with existing configuration files that use this style of delimiting. Instead, use ftl.realmservers.

Security Configuration Properties

The ftl.trust properties are optional but are strongly recommended for security.

ftl.trust.type

Type: String

FTL trust type ("file", "everyone", or "string", as per usual in other products).

ftl.trust.file

Type: String

FTL trust file path.

ftl.trust.string

Type: String

FTL trust certificate PEM string.

ftl.username

Type: String

FTL Server username that the client uses to connect to the Schema Repository.

ftl.password

Type: String

FTL Server password that the client uses to connect to the Schema Repository.

Schema Registration Configuration Properties

schema.registration.strategy

Type: String

Valid values are:

  • auto (default) - If the latest version of the schema registered under the producer topic's subject does not match the schema of the message the producer is sending, or, if no schema is registered yet, then register a schema matching the producer's message before sending it.

  • none - Do not register a schema. If a matching schema does not already exist for the producer's topic, then the producer fails to send.

  • latest - Do not register a schema. Instead, use the latest version of the producer topic's schema, even if it is not an exact match. If a schema does not exist for the producer's topic, then the producer fails to send.

Subject Configuration Properties

key.subject.name

Type: String

Subject in the Schema Repository that the client library registers new key schemas under.

Default: %t-key

Note: The application automatically replaces the special characters %t, %r, and %% with topic, name of schema, and literal % character respectively.

value.subject.name

Type: String

Subject in the Schema Repository that the client library registers new value schemas under.

Default: %t-value

Note: The application automatically replaces the special characters %t, %r, and %% with topic, name of schema, and literal % character respectively.