kafka cache_server
kafka cache_server
The kafka cache_server binding supports proactive fetch
of messages to keep the cache fresh in preparation for new consumers. This is enabled by configuring a list of bootstrap
topics for the binding.
kafka_cache_server:
type: kafka
kind: cache_server
options:
bootstrap:
- items-responses
exit: kafka_client
Configuration (* required)
options
object
The cache_server
specific options.
options:
bootstrap:
- items-requests
- items-responses
topics:
- name: items-requests
defaultOffset: live
options.bootstrap
array
ofstring
Topics to bootstrap in cache server even when no clients.
options.topics
array
ofobject
Topic configuration.
topics[].name
string
Topic name.
topics[].key
enum
[avro
,double
,float
,int32
,int64
,json
,protobuf
,string
],object
Enforce validation for key
key.model*
enum
[avro
,double
,float
,int32
,int64
,json
,protobuf
,string
]
A schema or type to validate the topic's key. Refer to the individual model docs for type specific implementation.
topics[].value
enum
[avro
,double
,float
,int32
,int64
,json
,protobuf
,string
],object
Enforce validation for value
value.model*
enum
[avro
,double
,float
,int32
,int64
,json
,protobuf
,string
]
A schema or type to validate the topic's value. Refer to the individual model docs for type specific implementation.
topics[].defaultOffset
enum
[live
,historical
]
Fetch offset to use for new consumers
topics[].transforms
array
Extract key or value attributes from the typed Kafka message to apply to the Kafka message id or Kafka headers. The extract-key
property must come before the extract-headers
property if they both exist.
transforms:
- extract-key: ${message.key.id}
transforms:
- extract-headers:
my-kafka-header: ${message.value.test}
transforms:
- extract-key: ${message.value.id}
- extract-headers:
my-kafka-header: ${message.value.test}
transforms[].extract-key
string
| Pattern:^\\$\\{message\\.(key|value)\\.([A-Za-z_][A-Za-z0-9_]*)\\}$
Use a part of the Kafka message as the Kafka message key.
transforms[].extract-headers
object
as map of namedstring
properties | Pattern:^\\$\\{message\\.(key|value)\\.([A-Za-z_][A-Za-z0-9_]*)\\}$
Use a part of the Kafka message as a Kafka message header.
routes*
array
ofobject
Conditional kafka
specific routes.
routes[].guarded
object
as map of namedarray
ofstring
List of roles required by each named guard to authorize this route.
routes:
- guarded:
my_guard:
- read:items
routes[].when
array
ofobject
List of conditions (any match) to match this route. Read more: When a route matches
when[].topic
string
Topic name pattern.
routes[].exit
string
Next binding when following this route.
exit: echo_server
exit
string
Default exit binding when no conditional routes are viable.
exit: echo_server
telemetry
object
Defines the desired telemetry for the binding.
telemetry.metrics
array
Telemetry metrics to track
telemetry:
metrics:
- stream.*